Zur Navigation

Nur Ereignisse der kommenden Woche aus der Datenbank holen [2]

11 tobi

im moment wird ja so ausgelesen und angezeigt: z.B:

spiel 1: ttc musterhausen - ttc mein verein 1
spiel 2: ttc mein verein 2 - ttc nullachtfünfzehn
spiel 3: ttc mein verein 4 - ttc bayern
spiel 4: ttc musterhausen 5 - ttc mein verein 6

ich möchte nur die spiele, in welchem ttc mein verein erstgenannter verein ist angezeigt bekommen, also dürften spiel 1 und spiel 4 nicht in der auflistung auftauchen (da zweitgenannter verein ttc mein verein ist) und spiel 2 und 3 sollten aufgelistet werden (da erstgenannter verein).

ich hoffe dies war verständlicher

31.12.2009 14:37

12 Jörg Kruse

Ja, das ist schon klar, aber das sagt nichts über die Struktur deiner Datenbanktabelle aus. Ich weiß nicht, in welchem Format die Heimmanschaften in der Tabelle spielergebnisse gespeichert sind. Ideralerweise sind diese mit einem Fremdschlüssel gespeichert, also mit der ID einer anderen Tabelle, in welcher die Daten der Mannschaften gespeichert sind. Wenn deine Mannschaft beispielsweise die ID 42 hat und die IDs in der Spalte heimmanschaft gespeichert sind, könntest du ganz einfach so filtern:

WHERE spielzeit BETWEEN CURDATE() AND (CURDATE() + INTERVAL 7 DAY)
AND heimmannschaft = 42

Genaueres kann man aber nur sagen, wenn man die Struktur der relevanten Datenbanktabelle(n) kennt.

31.12.2009 14:53 | geändert: 31.12.2009 14:54

13 tobi

die heimmannschaft hat keine id.

die heimmannschaft ist ganz normal in der db gespeichert

EDIT: so scheint es zu funktionieren:
BETWEEN CURDATE() AND CURDATE() + INTERVAL 365 DAY AND heimmannschaft  = 'TTC Musterhausen'

sobald ich aber
BETWEEN CURDATE() AND CURDATE() + INTERVAL 365 DAY AND heimmannschaft =  'TTC Musterhausen, TTC Musterhausen 2'

mache gehts nicht mehr

31.12.2009 15:06 | geändert: 31.12.2009 15:25

14 Jörg Kruse

Weil es die Mannschaft 'TTC Musterhausen, TTC Musterhausen 2' nicht gibt?

Ich nehme an, du möchtest sowas:

AND (heimmannschaft =  'TTC Musterhausen' OR heimmannschaft =  'TTC Musterhausen 2')

Edit:
Wenn die Namen sich nur durch die Zahl hinten unterscheiden, würde ich es mit LIKE machen:
AND heimmannschaft LIKE  'TTC Musterhausen%'

31.12.2009 16:06 | geändert: 31.12.2009 16:09

15 tobi

Zitat von Jörg
Weil es die Mannschaft 'TTC Musterhausen, TTC Musterhausen 2' nicht gibt?

Ich nehme an, du möchtest sowas:

AND (heimmannschaft =  'TTC Musterhausen' OR heimmannschaft =  'TTC Musterhausen 2')

es gibt die besagten mannschaften. ich habe es auch nun so realisiert. vielen vielen dank.

unten genannter code hat kein ergebnis ausgegeben

Zitat von Jörg

Edit:
Wenn die Namen sich nur durch die Zahl hinten unterscheiden, würde ich es mit LIKE machen:
AND heimmannschaft LIKE  'TTC Musterhausen%'

31.12.2009 16:21

16 tobi

hallo jörg,

ich nochmal. mir ist gerade was aufgefallen, wenn kein spiel in der kommenden woche stattfindet, würde ich gerne einbauen, dass die tabelle nicht angezeigt wird und dafür dann "In der oben angegebenen Spielwoche finden keine Heimspiele des TTC´s statt." angezeigt wird.
ich habe es nun folgendermaßen versucht, leider bekomme ich ein Fehlermeldung ausgeliefert:
Parse error: syntax error, unexpected T_ELSE

$Nachricht .= "

<div style=\"width:698px;text-align:left;border:solid 3px #000000;\">
	<div id=\"kopf\">
		<img src=\"http://123.de/4/mail_header.jpg\" width=\"698\" height=\"150\" alt=\"Mail Header\">
	</div>
			<div id=\"main\">
				<p>Hallo zusammen, <br /><br />hier die aktuellen Heimspieltermine der kommenden Woche vom ". date('d.m.Y') ." bis zum ". date('d.m.Y', $nextWeek) .":</p>
				";
			
				//sql Befehl			
				$sql = "
				SELECT id, wochentag, spielzeit, spielklasse, heimmannschaft, gastmannschaft, heimergebnis, gastergebnis FROM spielergebnisse WHERE spielzeit BETWEEN CURDATE() AND CURDATE() + INTERVAL 7 DAY AND (heimmannschaft =  'TTC 123' OR heimmannschaft =  'TTC 123  II' OR heimmannschaft =  'TTC 123  III' OR heimmannschaft =  'TTC 123  IV' OR heimmannschaft =  'TTC 123  V' OR heimmannschaft =  'TTC 123  VI') ORDER BY spielzeit";

				$db_erg = mysql_query( $sql );
				if ( ! $db_erg )

				{
				die('Ungültige Abfrage: ' . mysql_error());
				}

				function date_mysql2german($date) {
				$d    =    explode("-",$date);
    
				return    sprintf("%02d.%02d.%04d", $d[2], $d[1], $d[0]);
				}

				$anzahl = mysql_num_rows($db_erg);
				
				if ($anzahl == 0) {

$Nachricht .= "				
				<p>In der oben angegebenen Spielwoche finden keine Heimspiele des TTC´s statt.</p>
				";
				
				else {


$Nachricht .= "				

				<table class=\"table_gesamtspielplan_100\">
					<tr>
						<th class=\"table_gesamtspielplan\">Datum und Uhrzeit</th>
						<th class=\"table_gesamtspielplan\">Spielklasse</th>
						<th class=\"table_gesamtspielplan\">Heimmannschaft</th>
						<th class=\"table_gesamtspielplan\">Gastmannschaft</th>
					</tr>
					";
					
					$anzahl = 1;	
					
					while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
					{
$Nachricht .= "
					<tr>
						";
						
					$expDate = explode(" ",$zeile['spielzeit']);
					
$Nachricht .= "					
						<td class=\"table_gesamtspielplan\">". date_mysql2german($expDate[0])." ".substr($expDate[1],0,5)." </td>
						<td class=\"table_gesamtspielplan\">". $zeile['spielklasse'] ."</td>
						<td class=\"table_gesamtspielplan\">". $zeile['heimmannschaft'] ."</td>
						<td class=\"table_gesamtspielplan\">". $zeile['gastmannschaft'] ."</td>
					</tr>
					";
					$anzahl++;
					}

$Nachricht .= "
				</table>
				<br />
				";
				
				mysql_free_result( $db_erg );
				
				}
				
$Nachricht .= "
				
				<p>Mit freundlichen Grüßen<br />T S<br />Webmaster TTC 123</p>
				<p>checkout: <b><a class =\"links\" href =\"http://www.123.de\">www.123.de</a></b></p>
				<p>Kontakt: <b><a class =\"mailto\" href =\"mailto:info@123.de\">info@123.de</a></b></p>
			</div>	
</div>
";

08.01.2010 13:00 | geändert: 08.01.2010 13:38

17 Jörg Kruse

Die gescheifte Klammer von if muss vor dem else noch geschlossen werden

08.01.2010 13:48

18 tobi

Danke.
Kleine Zeichen große Wirkung :)

08.01.2010 15:06

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]