Variable mit Link übergeben... wo ist der Fehler?

Status
Nicht offen für weitere Antworten.

uwee

Erfahrenes Mitglied
Hallo,
Ich hab den Inhalt einer Variable per Link übergeben...
Dieser Link ruft dieselbe Seite nochmal auf, nur das nun in der Variable der vorgesehene Wert steht:
PHP:
<a href=telefon.php?buch=A>A</a>
Das ganze bis Z hin
nun übergebe ich das A an die Varaible $buch:
PHP:
$buch=($_GET['buch']);
Soweit, sogut... mit
PHP:
echo $buch;
erhalte ich auch das Ergebnis, dass sich ein A in der Variable befindet.

Nun scheint aber in meienr Abfrage ein Fehler zu stecken:
PHP:
$sql="SELECT id,name,vorname,abteilung,vorwahl,nummer,durchwahl,e-mail FROM telefon ".
 "WHERE name LIKE'" . ($buch) . "%' " .
"ORDER BY name";
Ich möchte nach allen Namen suchen, die mit dem Buchstaben A beginnen...
wenn ich mit echo $sql; arbeite kommt folgendes heraus:
SELECT id,name,vorname,abteilung,vorwahl,nummer,durchwahl,e-mail FROM telefon WHERE name LIKE'A%' ORDER BY name

in der Tabelle "telefon" stehen bisher 3 Einträge... alle Namen fangen mit A an.

die Ausgabe erfolgt folgendermaßen:
PHP:
<?php
if(!$result or !mysql_num_rows($result))
echo "Keine Ergebnisse</title></head><body link=blue vlink=blue alink=blue bgcolor=#CCCCCC><p>Keine Ergebnisse vorhanden</p>";
else {
echo mysql_num_rows($result)," Bilder in der Gallery</title></head><body link=blue vlink=blue alink=blue bgcolor=#CCCCCC>Es gibt <b>",mysql_num_rows($result),"</b> Bilder:<hr/>\n";
echo "<table border=0 cellpadding=5><tr><td><b>Name, Vorname</b></td><td><b>Abteilung</b></td><td><b>Telefon</b></td><td><b>e-Mail</b></td></tr>"; 
while ($row=mysql_fetch_object($result)){ 
   echo "<tr><td>",$row->name,", ",$row->vorname,"</td><td>",$row->abteilung,"</td><td>",$row->vorwahl,"/",$row->nummer,"-",$row->durchwahl,"</td><td>",$row->e-mail,"</td></tr>";  
} 
echo "</table>"; 
}
?>

Als Ergebnix erhalte ich:
Keine Ergebnisse vorhanden - wie es nunmal vorgesehen ist, wenn wirklich keine da sein sollten. Fakt ist aber, es MUSS Ergebnisse geben.
Die Script ist komplett von einem meiner anderen kopiert. NUR die Variablenfüllung und die Ausgabe wurden verändert.
Das andere Script funktioniert einwandfrei...

Wo hab ich den Fehler reingehauen?

UweE
 
Lass mal die Klammern um $buch in deiner SQL-Abfrage weg und schau, was passiert. Ich denke, da wird nur nix übergeben, wonach gesucht werden soll
 
ne, das wars nicht...
in der SQL-Abfrage (durch echo ausgegebn) steht auch deutlich, dass das richtig ist...
Ich überlege gerade, ob das mit dem % richtig gesetzt ist.
nicht dass der jetzt EXAKT nach A% sucht...
wäre aber quatsch, weil das andere script ja funktioniert.
 
ok versuch mal das % vor die Anführungszeichen zu setzen, das sollte funktionieren

EDIT:
ähm...

PHP:
   $sql="SELECT id,name,vorname,abteilung,vorwahl,nummer,durchwahl,e-mail 
  FROM 
  telefon 
   WHERE name LIKE '" . ($buch) . %"' 
  ORDER BY name;";

so schauts besser aus
 
Zuletzt bearbeitet:
Lumpi02 hat gesagt.:
ok versuch mal das % vor die Anführungszeichen zu setzen, das sollte funktionieren

EDIT:
ähm...

PHP:
   $sql="SELECT id,name,vorname,abteilung,vorwahl,nummer,durchwahl,e-mail 
  FROM 
  telefon 
   WHERE name LIKE '" . ($buch) . %"' 
  ORDER BY name;";

so schauts besser aus


So ein Schmarrn. Hast du noch mehr solche Top-Ideen? :mad:

Das Problem dürfte wohl das Feld e-mail sein. SQL will da eine mail von nem e subtrahieren.
 
vogtländer hat gesagt.:
So ein Schmarrn. Hast du noch mehr solche Top-Ideen? :mad:

Das Problem dürfte wohl das Feld e-mail sein. SQL will da eine mail von nem e subtrahieren.

GENAU das wars!
hätte ich wie immer nen unterstrich genommen, hätts sofort funktioniert!
danke @vogtländer
 
Ok da hab ich noch eins übersehen, aber ist das n Grund, hier gleich den Vollspacko raus hängen zu lassen?

*kopfschüttel*
 
Lumpi02 hat gesagt.:
Ok da hab ich noch eins übersehen, aber ist das n Grund, hier gleich den Vollspacko raus hängen zu lassen?

*kopfschüttel*

Uwe hat bereits in seinem Ausgangsbeitrag das erzeugte SQL-Statement gepostet und da ist zu sehen, dass sowohl das A als auch das % an den richtigen Stellen stehen. Hättest du vernünftig gelesen, hättest du dir deine Beiträge sparen können. Hättest du etwas nachgedacht, dann wäre dein zweiter Beitrag nicht kompletter Blödsinn geworden. Und hättest du nicht das Forum zugespamt, dann hätte ich dich sicher nicht so unfreundlich darauf aufmerksam gemacht.
 
Noch was zu Deinem Link:
HTML:
<a href=telefon.php?buch=A>A</a>
Damit Du auf der sicheren seite bist, dass alle Browser das richtig interpretieren (und es auch nach einer eventuellen Umstellung auf XHTML noch gültig ist) solltest Du das besser so schreiben:
HTML:
<a href="telefon.php?buch=A">A</a>
 
Status
Nicht offen für weitere Antworten.
Zurück