Einfache SQL-Abfrage
Ich möchte eine tabelle nach einer bestimmten id durchsuchen und ausgeben, ob diese existiert bzw. nicht existiert.
siehe unten
Warum wird aber immer "gefunden" ausgegeben, auch wenn die id nicht übereinstimmt?
$nummer vorher festgelegt
$query = "SELECT * FROM tabelle WHERE id=$nummer";
$result = mysql_query($query);
if ($result)
{
echo "gefunden";
}
else
{
echo "nicht gefunden";
}
siehe unten
Warum wird aber immer "gefunden" ausgegeben, auch wenn die id nicht übereinstimmt?
$nummer vorher festgelegt
$query = "SELECT * FROM tabelle WHERE id=$nummer";
$result = mysql_query($query);
if ($result)
{
echo "gefunden";
}
else
{
echo "nicht gefunden";
}
hi,
schreib alle IDs in ein array und frag dann ab, ob im array die ID existiert
$query = "SELECT ID FROM tabelle";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
$ID[] = $row['ID'];
}
if(in_array($nummer, $ID))
{
echo("ID ".$nummer." existiert");
}
else
{
echo("ID ".$nummer." existiert nicht");
}
schreib alle IDs in ein array und frag dann ab, ob im array die ID existiert
$query = "SELECT ID FROM tabelle";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
$ID[] = $row['ID'];
}
if(in_array($nummer, $ID))
{
echo("ID ".$nummer." existiert");
}
else
{
echo("ID ".$nummer." existiert nicht");
}
Zitat
Original von Crush
schreib alle IDs in ein array und frag dann ab, ob im array die ID existiert
Die Idee ansich Funktioniert zwar, aber man muss bedenken das es auch einfacher geht.
Die Lösung wie freq.9 sie gesagt hat ist da afaik die beste.
übrigens:
Zitat
$query = "SELECT * FROM tabelle WHERE id=$nummer";
Das steht nur so im Handbuch weil es Platz spart.
Man sollte immer alle Felder angeben die man haben will, dadurch wird das ganze schneller!
ihre DNS Analyse zeigt eine krankhafte Abneigung gegen jegliche Autorität und einen Charakter der zum Gewaltausbrechen neigt....
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »treo« (4. Juni 2004, 14:45)
Zitat
Original von mat
Der schnellste Weg (den ich benutze) ist:
![]()
Quellcode
1 2 3 4 5if(mysql_result(mysql_query("SELECT COUNT(*) FROM ... WHERE ..."),0)==1){ // GEFUNDEN }else{ // NICHT G. }
Also wenn dann würde ich das so machen
|
|
Quellcode |
1 2 3 4 5 |
if(mysql_result(mysql_query("SELECT COUNT(*) FROM ... WHERE ..."),0)>0){
// GEFUNDEN
}else{
// NICHT G.
}
|
Weil wenn er bei deinem 2 Einträge findet behauptet er, er hätte gar keinen gefunden, so sagt er alles über 0 ist gefunden.
Zitat
Original von NiBurhe
Zitat
Original von mat
Der schnellste Weg (den ich benutze) ist:
![]()
Quellcode
1 2 3 4 5if(mysql_result(mysql_query("SELECT COUNT(*) FROM ... WHERE ..."),0)==1){ // GEFUNDEN }else{ // NICHT G. }
Also wenn dann würde ich das so machen
![]()
Quellcode
1 2 3 4 5if(mysql_result(mysql_query("SELECT COUNT(*) FROM ... WHERE ..."),0)>0){ // GEFUNDEN }else{ // NICHT G. }
Weil wenn er bei deinem 2 Einträge findet behauptet er, er hätte gar keinen gefunden, so sagt er alles über 0 ist gefunden.
normalerweise kommt aber eine ID nur einmal vor
Ähnliche Themen
-
PHP »-
einfache kontrollstruktur case-break klappt 1x und 1x nicht??
(4. Juli 2006, 20:43)
-
Domains »-
string returned by server
(22. Mai 2006, 14:51)
-
PHP »-
Artikel Ausgabe nach buchstaben
(2. Februar 2006, 13:33)
-
PHP »-
Ich verzweifle an MySql
(14. Dezember 2002, 21:17)


