yanmai

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:

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 face-sad
Wo ist hier der Fehler?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 319286

Url: https://administrator.de/forum/php-soll-datensaetze-in-der-datenbank-ueberpruefen-319286.html

Ausgedruckt am: 07.07.2025 um 20:07 Uhr

SlainteMhath
SlainteMhath 27.10.2016 um 15:38:34 Uhr
Moin,

Zeile 07 muss lauten
if(mysqli_num_rows($search)==0)
dann sollte es gehen.

lg,
Slainte
Biber
Biber 27.10.2016 um 16:14:47 Uhr
Moin Yanmai,

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