Erste Kunden-DB - Textfelder wie verknüpfen?

Was willst du denn mit den geschweiften Klammern? Die sind unnötig!
PHP:
$sql = 'SELECT * FROM `kunden` WHERE `Vorname` = "'.$_POST['Vorname'].'" AND `Nachname` = "'.$_POST['Nachname'].'"';
 
Das geht auch nicht ...

Parse error: syntax error, unexpected T_STRING in /mnt/web7 ... /sql_test.php on line 39

Habe auch mal die "Hochkommas" weg gelassen. Das Resultat bleibt.
 
@einfach nur crack
Die geschweiften Klammern hat er glaub von mir. Sie sind nicht immer nötig, erleichtern aber das unterscheiden zwieschen Varaibel und Text. Grad wenn auf eine Variable kein Leerzeichen folgt, kannst du es sonst nur mit zusammensetzen mittels Punkt lösuen.
PHP:
echo "Kosten: ".$kosten."CHF"; //funktioniert
echo "Kosten: $kostenCHF"; //funktioniert nicht
echo "Koste: {$kosten}CHF"; //funktioniert

Es ist auch besser lesbar wenn man ein Objektparameter oder/und ein Arrayinhalt ausgebn will
PHP:
echo "Kosten: {$meineRechnung->Betraege[1]->Wert}{$meineRechnung->Betraege[1]->Waerung}";

-> http://www.php.net/manual/de/language.types.string.php Kapitel "Variable parsing" und "Variable parsing"

Wenn mans glaich von Anfang an so macht, ist erstens der Text mMn lesbarer und zweitens hat man gleich ohne viel überlegen ein viel breiteres Spektrum an Möglichkeiten beim String-Parsen ohne zuerst alle Fehler die ohne {} entstehen zu erleben.

--------------------------------------------------------------------------------------

@WinniPuh
Also, der Kunde "Martin Mustermann" existiert in meiner Minidatenbank. Evtl. störende Leerzeichen sind auch nicht da.

Ich erhalte jetzt folgende Meldungen:

SELECT * FROM kunden WHERE Vorname =Martin AND Mustermann
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /mnt/web .../sql_test.php on line 42

Tja, das ist natürlich nix
PHP:
$sql = "SELECT * FROM kunden WHERE $_POST['Vorname']} AND {$_POST['Nachname']}";
Mit was soll die EIngabe des Nachnamens verglichen werden

Also vergleichen wir den Nachnamen mit der Variable $_POST['Nachname']
Zudem erfordert das SQL um einen String ' '. In der Ausgabe also etwa so: nachname='Meier'.
Daraus ergibt sich ein solches SQL:
PHP:
$sql = "SELECT * FROM kunden WHERE Vorname ='{$_POST['Vorname']}' AND Nachname = '{$_POST['Nachname']}'";

Jetzt nimmst du mal den String, der beim Echo ausgegeben wird und prüfst ihn über phpMySQL direkt auf die DB. Korrigiere dort dein SQL soweit bis es funktioniert und ändere anschliessend dein PHP-Script dementsprechend.
 
Zuletzt bearbeitet:
Zurück