variableninhalt
ska
- php
abend,
bei diesem Stück Quelltext sollte eigentlich das Ergebnis der Abfrge in $check gespeichert werden, wenn die Abfrage kein Ergebnis hat also $check leer ist soll false ausgegeben werden ansonsten der Variableninhalt.
Gut jetzt weiss ich nicht ob der inhalt des querys in ein array kommt weil ich nur resourc id 3 bekomme für echo $check, aber davon abgesehen sollte ja zunächst false kommen wenn die plz nicht in der tabelle plz vorhanden ist, aber es kommt immer nur resourc id 3?
$check = mysql_query("select plz from plz where plz=".$_GET['plz'],$connect);
if (empty($check))
{
echo 'false';
}
else
{
echo $check;
}
bitte um hilfe
mbg ska
Hello,
bei diesem Stück Quelltext sollte eigentlich das Ergebnis der Abfrge in $check gespeichert werden,
Es wird dort bei select entweder eine Ressource ID (ein Handle) gespeichert, oder eben false.
Das Handle kannst Du zwar direkt abfragen, aber was nützt es Dir?
Wenn Du wissen willst, was sich dahinter verbirgt, benötigst Du die passenden Funktionen dafür.
mysql_fetch_assoc()
mysql_num_result()
usw.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
hi,
also ich stecke mache aus $check mit mysql_fetch_assoc ein array und danach lese ich es z.B mit foreach aus um dann an meine Zahl zu gelangen. Geht das auch kürzer?
mbg Ska
meine Lösung,
if ($_GET['plz'] )
{
$check = mysql_query("select plz from plz where plz=".$_GET['plz'],$connect);
$chek = mysql_fetch_assoc($check);
if (empty($chek))
{
echo 'Die eingegebene Plz ist nicht vorhanden, bitte versuchen Sie es erneut.';
}
if(!empty($chek)){
foreach($chek as $value)
echo $value;
}
mbg Ska
Hello,
... dieser nicht ganz!
#> if ($_GET['plz'] )
if (isset($_GET['plz']))
{
# $check = mysql_query("select plz from plz where plz=".$_GET['plz'],$connect);
# Kein Escaping bedeutet meistens "Tschüss Datenbank!"
$sql = 'select plz from plz where plz=".mysql_real_escape_tring($_GET['plz'],$connect);
$res = mysql_query($sql,$connect); ## nimm nachvollziehbare und unterscheidbare Variablennnamen
if (!$res)
{
# Das bedeutet nicht, dass die angegebene PLZ nicht in der DB steht,
# sondern das das Query insgesamt schiefgegangen ist.
# Der Grund könnte dann in mysql_error($connect) stehen.
}
else
{
# nach der Anzahl der gelieferten Datensätze fragen
if (mysql_num_result($res) > 0)
{
$_record = mysql_fetch_assoc($res);
}
else
{
echo 'Die eingegebene Plz ist nicht vorhanden, bitte versuchen Sie es erneut.';
}
#> if(!empty($chek))
else ## Hier hatte Else immer das Wort ;-)
...
Statt mit mysql_fetch_assoc() und foreach() zuzugreifen, kannst Du auch direkt mit
$plz = mysql_fetch_field($connect,0);
zugreifen, da Du ja nur die erste haben willst
http://de2.php.net/manual/en/function.mysql-fetch-field.php
Dann solltest Du aber auch sicherstellen mit if(mysql_num_rowws($res) == 1), dass nur ein Datensatz geliefert wurde.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
hallo,
danke für die ausführlichen Hilfestellungen.
Werde mir alles einprägen.
mbg Ska
Hello,
also ich stecke mache aus $check mit mysql_fetch_assoc ein array und danach lese ich es z.B mit foreach aus um dann an meine Zahl zu gelangen. Geht das auch kürzer?
Der Weg ist gangbar...
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hi,
dir scheint noch wesentliches Grundlagenwissen zu fehlen - nimm dir doch bitte erst mal ein Tutorial wie bspw. http://tut.php-quake.net/ vor.
MfG ChrisB
hallo,
danke für den Tipp mach ich gerne, könntest du mir vielleicht noch einen Gefallen tun und mir verlinken wo in diesem Tut etwas über handle steht und wie ich diese verwende.
mbg Ska
Hi,
danke für den Tipp mach ich gerne, könntest du mir vielleicht noch einen Gefallen tun und mir verlinken wo in diesem Tut etwas über handle steht und wie ich diese verwende.
http://tut.php-quake.net/mysql-query.html erklaert den grundlegenden Umgang mit MySQL-Abfragen.
http://www.php.net/manual/de/ref.mysql.php - unter "Begriffserläuterung" weitere Erklaerungen.
MfG ChrisB