yanmai
Goto Top

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?

Content-Key: 319286

Url: https://administrator.de/contentid/319286

Printed on: May 4, 2024 at 05:05 o'clock

Member: SlainteMhath
SlainteMhath Oct 27, 2016 at 13:38:34 (UTC)
Goto Top
Moin,

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

lg,
Slainte
Member: Biber
Biber Oct 27, 2016 at 14:14:47 (UTC)
Goto Top
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