PHP soll Datensätze in der Datenbank überprüfen
Hallo ihr Administratoren ;)
Ich habe eine Datenbanktabelle "Freundschaftsanfragen". Wenn Benutzer a Benutzer b eine Freundschaftsanfrage schickt, dann wird ein Datensatz in der Datenbank angelegt:
ID | Von | Zu |
1 | b | a |
Soweit funktioniert das ganze auch schon. Wenn nun aber Benutzer b nochmal eine Freundschaftsanfrage zu Benutzer a schickt, soll ein Fehler kommen, da er schon bereits eine Anfrage gesendet hat. Bisher habe ich diesen Code:
Aber egal was ich jetzt versende, es kommt immer das Echo, dass man bereits eine Anfrage an diesen User gesendet hat, was gar nicht stimmt
Wo ist hier der Fehler?
Ich habe eine Datenbanktabelle "Freundschaftsanfragen". Wenn Benutzer a Benutzer b eine Freundschaftsanfrage schickt, dann wird ein Datensatz in der Datenbank angelegt:
ID | Von | Zu |
1 | b | a |
Soweit funktioniert das ganze auch schon. Wenn nun aber Benutzer b nochmal eine Freundschaftsanfrage zu Benutzer a schickt, soll ein Fehler kommen, da er schon bereits eine Anfrage gesendet hat. Bisher habe ich diesen Code:
if($Action == "addFriend")
{
$Von = mysqli_real_escape_string($conn, $_POST['from']);
$Zu = mysqli_real_escape_string($conn, $_POST['to']);
$search = mysqli_query($conn, "SELECT `Von`, `Zu` FROM `MainlysoftFreundschaftsanfragen` WHERE `Von`='$Von' AND `Zu`='$Zu'");
if(!$search)
{
$mysqli = mysqli_query($conn, "INSERT INTO `MainlysoftFreundschaftsanfragen`(`Von`, `Zu`) VALUES ('$Von', '$Zu')");
if ($mysqli)
{
echo "Success";
}
}
else
{
echo "You have send a friend request to this person.";
}
}
Aber egal was ich jetzt versende, es kommt immer das Echo, dass man bereits eine Anfrage an diesen User gesendet hat, was gar nicht stimmt
Wo ist hier der Fehler?
Please also mark the comments that contributed to the solution of the article
Content-Key: 319286
Url: https://administrator.de/contentid/319286
Printed on: May 4, 2024 at 05:05 o'clock
2 Comments
Latest comment
Moin Yanmai,
oder als Variante zu SlaintheMhath:
Dein geprüftes Ergebnis "$search" sagt ja nur aus, dass die Query fehlerfrei lief, aber nicht, ob ein Resultset mit > 0 Datensätzen zurückkam.
Grüßr
Biber
oder als Variante zu SlaintheMhath:
...
$search = mysqli_query(($conn, "SELECT `Von`, `Zu` FROM `MainlysoftFreundschaftsanfragen` WHERE `Von`='$Von' AND `Zu`='$Zu'");
$row = mysqli_fetch_row($search);
if (!$row)
...
Dein geprüftes Ergebnis "$search" sagt ja nur aus, dass die Query fehlerfrei lief, aber nicht, ob ein Resultset mit > 0 Datensätzen zurückkam.
Grüßr
Biber