• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kein Wert in der Variable, warum?

Krobbus

Mitglied
Hi, ich hab folgenden Code, bis zum ersten echo klappt noch alles (name_key wird also korrekt ausgegeben). $name1 wird allerdings nicht mehr ausgeben. Name der Tabelle, Spaltennamen stimmen aber alle. Woran kann das liegen?

PHP:
$name_key = $_GET['data'];
echo "$name_key";
$result = mysql_query('SELECT name FROM table WHERE name_key = $name_key LIMIT 1');
$name1 = mysql_query($result);
echo $name1;
 
Werbung:
Fehler ausgeben wäre ein sinnvoller erster Schritt..

PHP:
$sql = " SELECT name FROM table WHERE name_key = $name_key LIMIT 1";
$result = mysql_query($sql) OR die(mysql_error());
Dein Script schreit übrigens nach einer sql-injection, guck dir mysql_real_escape_string() an.

Im übrigen wird sich dein Problem mit
PHP:
$sql = "SELECT name FROM table WHERE name_key = '".$name_key."' LIMIT 1";
beheben lassen. Tu dir trotzdem den gefallen und korrigier das alles.
 
Zuletzt bearbeitet:
Das mit der sql injection hab ich noch nie gehört, werde ich mich mal informieren, danke.

Ich bekomme folgende Ausgabe: Query was empty. Das bedeutet doch, dass an der entsprechenden Stelle in der Tabelle nix gefunden wurde, also kann doch eigentlich nur der tabellenname oder eine der spalten falsch geschrieben sein oder??
 
Werbung:
weil das voelliger Quatsch ist....

$result = mysql_query(.....);
$name1 = mysql_query($result); .

Das kann nicht funktionieren!
$result ist bereits das ergebniss der query. Warum also nochmal ein query auf $result machen?
 
Das mit der sql injection hab ich noch nie gehört
wir leben in einer schlechten welt..

Geh mal in mysqladmin und geb den sql query da direkt ein.. also SELECT name FROM table WHERE name_key = 'deinname';
Funktionierts?

edit: Ja, doppelter query ist natürlich auch nicht schlecht (;
 
Zuletzt bearbeitet:
Oh stimmt Anusha, manchmal sieht man den Wald vor lauter Bäumen nicht, habs jetzt geändert. Bekomme jetzt allerdings "Resource id #5" als Ausgabe. mysql_query($result) ist wohl falsch, oder?

EDIT: Danke habs schon, benutze nun mysql_fetch_row($result);
 
Zuletzt bearbeitet:
Werbung:
PHP:
$name_key = $_GET['data'];
$result = mysql_query("SELECT name FROM table WHERE name_key='".mysql_real_escape_string($name_key)." ' LIMIT 1");
$name = mysql_fetch_array($result);
echo $name[0];
Befass dich mal mit den Grundlegenden Dingen in Bezug auf Datenbankabfragen via PHP.
 
Zurück
Oben