25 Stimmen

Wie kann man prüfen, ob SELECT EXISTS einen Wert zurückgibt oder nicht?

Ich versuche, schnell festzustellen, ob eine user_ID der Eigentümer eines "goal" ist. Ich glaube, meine SQL-Abfrage ist gut, aber ich versuche, eine gute Möglichkeit zu finden, das Ergebnis zu überprüfen!

In diesem Fall gibt meine Funktion unabhängig davon, was ich für $obj_id oder $user_id eingebe, true zurück. Ich nehme an, das liegt daran, dass mysql_num_rows auch ein falsches Ergebnis als Zeile zählt? Welchen PHP-Code sollte ich also verwenden, um zu prüfen, ob das Ergebnis existiert oder nicht?

Beachten Sie, dass ich etwas Kurzes und Elegantes möchte! Ich weiß, ich könnte es auf die lange Art und Weise tun (check count(*), return mysql_assoc dann überprüfen Sie den Wert count...), aber das ist langwierig und hässlich.

Irgendwelche Ideen? Danke!

$query = "SELECT EXISTS (SELECT * FROM goals WHERE goal_ID='$obj_id' AND user_ID='$user_id')";
if (@mysql_num_rows(mysql_query($query))!=1) {
    return false;
} else {
    return true;
}

1voto

Sergey Shramuk Punkte 11

Wirklich funktionierende Konfiguration für MySQL:

$sql="SELECT EXISTS (Select * FROM $dbname.$dbrel WHERE Index_r=$idx AND ... LIMIT 
1)";    
$r1=mysqli_fetch_row(mysqli_query($conn, $sql));
if (current($r1) == 0) {when no recoeds} else {when exist records }

0voto

tareco Punkte 1065

Wie wäre es damit:

$query = "SELECT EXISTS (SELECT * FROM goals WHERE goal_ID='$obj_id' AND user_ID='$user_id')";

return  mysql_query($query) ? false : true;

0voto

levent Punkte 9
mysql_result(mysql_query("SELECT EXISTS (SELECT * FROM goals WHERE goal_ID='$obj_id' AND user_ID='$user_id')"),0);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X