GET Variable

GoldenEye

Erfahrenes Mitglied
hi,

folgendes script habe ich:

PHP:
<?php
    error_reporting(E_ALL);

    include 'config.php';
    // Konfigurationsdatei laden

    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());


    $result = mysql_query('SELECT head,data FROM page WHERE id = ".$_GET['id']."') OR die(mysql_error());
    echo 'Der Name des Users ist '.$result;
?>

die Datei heißt page.php

Ich möchste jetzt mit dem Link page.php?id=1 die entsprechenden Daten aus der Datenbank.
Wieso funktioniert das nicht?
Ich bekomm einfch nur eine leere Seite.

Gruß
 
Weil es sicher keine ID gibt die dem String .$_GET['id']. entspricht.
Und selbst wenn die Abfrage was ausspucken wuerde koenntest Du $result nicht direkt ausgeben.
 
Dennis Wronka hat gesagt.:
Weil es sicher keine ID gibt die dem String .$_GET['id']. entspricht.
Und selbst wenn die Abfrage was ausspucken wuerde koenntest Du $result nicht direkt ausgeben.


Hmm, wieso geht das denn mit dem GET nicht?
Hierran hatte ich mich orientiert: KLICK

Muss ich das Ausgeben mit Rows machen, oder wie?

gruß
 
Du musst die Strings auch richtig verketten.

Entweder:
PHP:
'blabla'.$_GET['bla'].'blabla'
Oder:
PHP:
"blabla".$_GET['bla']."blabla"
Aber nicht:
PHP:
'blabla".$_GET['bla']."blabla'

Genau, selbst wenn Du nur eine Zeile ausliest musst Du mit mysql_fetch_row()/-assoc()/-array() arbeiten.
 
Mit dem verketten habe ich noch net ganz verstanden.

kannstes mir net mal an meinem Beispiel zeigen? Also bei der WHERE Abfrage?
soll das ganze so aussehen?

PHP:
mysql_query('SELECT head,data FROM page WHERE id = .$_GET['id'].') OR die(mysql_error());


gruß
 
Nein, das ganze sollte so aussehen:
PHP:
mysql_query('SELECT head,data FROM page WHERE id = '.$_GET['id']) OR die(mysql_error());

Dennis hat dir weiteroben doch ein schönes Beispiel gegeben!?
Außerdem erkennst du schon am Syntax-Highlighting dass da was nicht stimmt.
Gruß!
 
Mit ' und " oeffnest und schliesst Du Strings. Dabei musst Du beachten, dass Du zum Schliessen eines Strings die gleichen Anfuehrungszeichen nutzt die Du auch zum Oeffnen genutzt hast.
Wenn Du nun eine Variable in einen String einfuegen willst musst Du diesen erst schliessen und dann mit dem Verkettungsoperator . die Variable anhaengen. Anschliessend kannst Du, wieder durch Zuhilfenahme des Verkettungsoperators, auch den String wieder oeffnen und weiter statischen Text schreiben.
 
GoldenEye hat gesagt.:
Mit dem verketten habe ich noch net ganz verstanden.

kannstes mir net mal an meinem Beispiel zeigen? Also bei der WHERE Abfrage?
soll das ganze so aussehen?

PHP:
mysql_query('SELECT head,data FROM page WHERE id = .$_GET['id'].') OR die(mysql_error());


gruß

Hi ho, bei deiner WHERE anfrage ist was falsch,
also, du darfst nicht 4 mal hinterieinander in einer wariable ' ' ' ' setzen,
dann schließt du den Tag und öffnest den wieder,
dies ist richtig:

PHP:
mysql_query("SELECT head,data FROM page WHERE id =".$_GET['id']) or die(mysql_error());

Hoffe ist richtig ist noch früh am morgen ;)

Achso verketten ist, wenn du durch bestimmte VARIABLEN, den TAG schließen must,
aber um nicht unnötig viel zu schreiben verkettet man:

z.B.:
PHP:
echo "Dies ist eine Testausgabe, den namen den Sie eingetippt haben ist: " . $_POST['name'];

Der PUNKT vor der $_POST Variable verbindet mit der innen Eingetippten echo ausgabe,
somit ist auch möglich das du z.B:
PHP:
echo "Dies ist eine Testausgabe, den namen den Sie eingetippt haben ist: " . 
""$_POST['name'];

schreiben kannst um zeilenumbrüche zu nutzen.

mfg, cille
 
Zuletzt bearbeitet:
Zurück