php-Abfrage funktioniert, aber Variable wird nicht ausgegeben.

aherzog

Erfahrenes Mitglied
Hallo miteinander.

Seit ca. 3 Wochen, funktionieren einzelne Seiten nicht so, wie sie sollten.
Bis dahin hat alles wunderbar funtioniert.

Obwoll ich keine Änderungen durchgeführt habe, sehe ich die Jahreszahl nicht mehr.

Es sind besonders die Seiten (Totel 3 Seiten) betroffen, die mit URL-Link Daten übergeben werden. Bei 2en ist es sogar so, das die ganze Abfrage nicht mehr funktioniert...
Ich dachte zuerst, das es mit dem GET-Befehlen zu tun hat. Finde aber nicht heraus wo das Problem liegt.

Die Seite funktioniert, zwar, (die Abfrage stimmt), aber die Jahreszahl wird einfach nicht angezeigt.

Mit dem echo-Befehl habe ich versucht die Variable ($jahr) an verschiedenen Positionen im Script auszugeben. Aber sie ist immer leer.

Da mein PHP-Wissen nicht auf einem proffesionellen Level ist, brauche ich nun eure Hilfe.
Was ist falsch an dem Script? warum wird das Jahr Im Titel nicht angezeigt?
Der Titel müsste beim öffnen heissen "Alle Rennen im Jahre 2007"

Hier der Link zur Testseite
http://www.f1statistik.ch/test.php?jahr=2007


Und das ist der Code:
PHP:
<form method="get">
          <table width="86" border="1" cellspacing="2" cellpadding="0" align="center">
                <tr>
                <td><select name="jahr" size="1">
                <option value="1950">1950</option>
	<option value="1951">1951</option>
	<option value="1952">1952</option>
	<option value="1953">1953</option>
	<option value="1954">1954</option>
	<option value="1955">1955</option>
	<option value="1956">1956</option>
	<option value="1957">1957</option>
	<option value="1958">1958</option>
	<option value="1959">1959</option>
	<option value="1960">1960</option>
	</select></td>
	<td><input type="submit" value="Jahr senden" /></td>
	</tr>
	</table>
	</form>
	<br>
	<br>
	<div align="center">
    <?php
    $link = mysql_connect('xxx', 'xxx', 'xxxx')
        or die('Verbindungsaufbau zum Datenbankserver schlug fehl!');
    mysql_select_db('xxxxx')
        or die('Auswahl der Datenbank schlug fehl!');

    $query = '
        SELECT
                `datum`,
                `ort`
          FROM
                `ortinfos`
          WHERE
            YEAR(`datum`) = '.intval($_GET['jahr']).'
          ORDER BY
                `datum`,
                `ort`
        ';
    echo "datum: ".$jahr."<br>";
    $result = mysql_query($query)
        or die('Datenbankabfrage schlug fehl!');
echo "<font size=5><b>Alle Rennen im Jahre " . $jahr . "</b></font><br><br>";
    echo '<table border="1" align="center">';
    echo '<tr><th>Datum</th><th>Ort</th></tr>';
    while( $row = mysql_fetch_assoc($result) ) {
        $datum2 = strtotime($row['datum']);
        
        $ort4 = utf8_encode($row['ort']); 
        echo '<tr><td><a href="rennergebniss.php?datum='.$row['datum'].'">'.date("d.m.Y",$datum2).'</a></td><td><div align="left">'. $ort4 .'</div></td></tr>';
    }
    echo '</table>';

?>

Vielen Dank für eure Hilfe...
Gruss Andi
 
Zuletzt bearbeitet:
Hi Nambot.

Die Variable verwende ich bereits.....

YEAR(`datum`) = '.intval($_GET['jahr']).'

Also sollte das register_globals Problem behoben sein.
 
Ich meinte diese Zeilen:
Anstatt
PHP:
echo "datum: ".$jahr."<br>";
PHP:
echo "datum: ".$_GET['jahr']."<br>";
und anstatt
PHP:
cho "<font size=5><b>Alle Rennen im Jahre " . $jahr . "</b></font><br><br>";
PHP:
cho "<font size=5><b>Alle Rennen im Jahre " . $_GET['jahr‘] . "</b></font><br><br>";
Diese Zeilen sollen ja das Jahr aus dem Formular augeben oder?
 
Hi Nambot.

Cool. t bestends....

Vielen Dank.

Ich wusste nicht das ich bei jeder Abfrage von $jahr, den $_GET['jahr'] Befehl nemmen muss.....


Vielen Dank für die prompte Hilfe.
 
Kein Problem.
Musst du im kompletten Script, um auf irgendwelche GET Parameter zuzugreifen, seitdenn register_globals ist on, was aber nciht zu empfehlen ist.
 
Und vergiss nicht die Benutzereingaben für die Ausgabe mit htmlspecialchars() von HTML-Metazeichen zu befreien.
 

Neue Beiträge

Zurück