Newbye-Problem mit Abfrage

aherzog

Erfahrenes Mitglied
Hallo miteinander...

mich plagt ein Problem mit einer Abfrage.

Ich möchte auf meiner Seite eine Datenbankabfrage erstellen die mir alle Rennen eines bestimmten Jahres auflistet. Leider mache ich irgendwo einen Fehler, kann aber die Fehlermeldung nicht genau interpretieren, und weiss deshalb nicht wo der Fehler liegt. Könnt Ihr mir helfen

Ich habe absichtlich, im Selectbefehl unter Like, 2004-% geschrieben um so alle Rennen des Jahres 2004 anzuzeigen. Später sollte da aber dann die Variable eingefügt werden die weiter oben im Popup-Menü ausgewählt wird. ( = $_GET['jahr'] )

Hier noch der Link zur Seite: http://www.f1statistik.info/web_seiten/PHP-Seiten/ergebnisse-rennen.php

Und nun noch der PHP-Code.
( Hoffe das er richig engefügt ist)
PHP:
<?php
                                   echo "Folgende Rennen fanden im Jahre " . $_GET['jahr'] . " statt";
										?></b>
									<?php
									//PHP-BEGINN
									$status = mysql_connect ("localhost", "XXXXX", "XXXXX" );
										if ( ! $status )
										{
											die("<b><br><br><br><br>Danke das .....</b>");
										}
									$status = mysql_select_db ("usr_web126_1");
										if ( ! $status )
										{
											die ("<b><br>Danke das..... <br></b>" . mysql_error() );
										}
									//SQL-Abfrage ausführen
									$res = mysql_query("SELECT `datum`, `ort` FROM `ergebnis` WHERE `datum` LIKE '2004-%' ORDER BY `datum`, `ort` ");
									//Tabellen-Beginn
									echo "<table border=1 align=center>";
									//Tabellen-Ueberschrift
									echo "<tr><td>Datum</td> <td>Ort</td></tr>";
									//Tabellen-Inhalt
									while ($dsatz = mysql_fetch_assoc($res));
										{
											echo "<tr>";
											echo "<td>" . $dsatz["datum"] . "</td>";
											echo "<td>" . $dsatz["ort"] . "</td>";
											echo "</tr>";
										} 
										//Tabellen-Ende
										echo "</table>";
									//PHP-ENDE
									?>

Vielen Dank für die Hilfe.

Gruss aus der Schweiz
Andreas
 
Zuletzt bearbeitet:
Probier mal Folgendes:
PHP:
<?php
 
	$link = mysql_connect('localhost', 'XXXXX', 'XXXXX')
		or die('Verbindungsaufbau zum Datenbankserver schlug fehl!');
	mysql_select_db('usr_web126_1')
		or die('Auswahl der Datenbank schlug fehl!');

	$query = '
		SELECT
		        `datum`,
		        `ort`
		  FROM
		        `ergebnis`
		  WHERE
			YEAR(`datum`) = '.intval($_GET['year']).'
		  ORDER BY
		        `datum`,
		        `ort`
		';
	$result = mysql_query($query)
		or die('Datenbankabfrage schlug fehl!');

	echo '<table border="1" align="center">';
	echo '<tr><th>Datum</th><th>Ort</th></tr>';
	while( $row = mysql_fetch_assoc($result) ) {
		echo '<tr><td>'.$row['datum'].'</td><td>'.$dsatz['ort'].'</td></tr>';
	}
	echo '</table>';

?>
 
Hallo Gumbo

Hab den Code kopiert und eingefügt.

Leider funktioniert es nicht.

Fehlermeldung: Datenbankanfrage schlug fehl.


Andreas
 
Das $link hat nicht geholfen.

Mir scheint das hier noch ein Fehler drin ist.

PHP:
WHERE
            YEAR(`datum`) = '.intval($_GET['year']).'

In meiner Datenbank ist das Datum in YYYY-DD-MM Format abgespeichert (z.B. 2005-13-05)
Die Monate und Tage sind für diese Abfrage NOCH nicht wichtig.
Kann ich den Rest ignorieren

Andreas
 
Zuletzt bearbeitet:
Lass dir doch bei einem Fehler zusätzlich die Abfragedefinition ($query) ausgeben. Daher ist sie auch separat in einer Variable gespeichert.
 
Gumbo hat gesagt.:
Lass dir doch bei einem Fehler zusätzlich die Abfragedefinition ($query) ausgeben. Daher ist sie auch separat in einer Variable gespeichert.

Ich hab mal die Fehlermeldung "Datenbankabfrage schlug fehl" ausgeschaltet.
PHP:
$result = mysql_query($query);
       	//or die('Datenbankabfrage schlug fehl!');

danach folgt folgende Fehermeldung:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/web126/html/f1statistik_v2/web_seiten/PHP-Seiten/ergebnisse-rennen.php on line 199
 
Hi!
Probier mal bei deinem Query
PHP:
 //...ausschnitt von $query
ORDER BY ´ort´ AND ´datum´
//statt....
ORDER BY ´ort´, ´datum´
lg Andulus
 
Der Problem besteht darin, dass die Datenbankabfrage fehlschlägt – dass du die or die()-Fehlerbehandlung auskommentierst ändert nichts daran. Daher war ja mein Ratschlag, die Abfragedefinition auszugeben, um sie manuell zu prüfen.
Die ORDER BY-Klausel ist übrigens syntaktisch korrekt (siehe SELECT-Syntax).
 
Zurück