Ich führe die folgenden Abfragen auf meine SQL-Datenbanken. Als nächstes möchte ich alle Benutzer von $result_users
entfernen, deren user_ID
ebenfalls ein receiverID
im $result_sender
Array ist. Dazu habe ich den folgenden Code erstellt, bin mir aber nicht sicher, ob meine Vorgehensweise korrekt ist. Ich habe online gefunden, dass unset($array[$key])
ist, was getan werden soll, aber alle Beispiele, die ich normale Arrays gefunden wurden, und nicht von SQL-Datenbanken erhalten, also ich bin mir nicht sicher, wiePHP Entfernen von Wert innerhalb forEach Schleife von mysqli_fetch_array
$retrieve_potential_matches_sender = mysqli_query($conn,"SELECT senderID, receiverID FROM match_instance WHERE senderID = '$sender'");
$retrieve_all_users = mysqli_query($conn,"SELECT user_id, sex, latitude, longitude FROM users_with_fb");
$result_sender = mysqli_fetch_array($retrieve_potential_matches_sender);
$result_users = mysqli_fetch_array($retrieve_all_users);
if count($result_sender) > 0 {
foreach ($result_sender as $sendingID) {
foreach ($result_users as $userValue) {
if ($userValue["user_id"] == $sendingID["receiverID"] {
unset($userValue);
}
}
}
Warum müssen Sie nicht nur in SQL JOIN tun? – Reto
rtfm: http://php.net/mysqli_fetch_array Die Funktion gibt eine einzelne Reihe von Ergebnissen aus der Abfrage zurück, nicht alle Ergebnisse. Wenn Sie nicht alle Zeilen durchlaufen, durchlaufen Sie die Felder einer EINZEL-Zeile. und Sie müssen wirklich über SQL-Joins lernen. Das Ausführen von zwei Abfragen parallel ist sehr ineffizient (sogar Sie haben es richtig gemacht). –
@Reto würde es so etwas wie SELECT users_with_fb.user_id, users_with_fb.sex, users_with_fb.latitude, users_with_fb.longitude VON users_with_fb INNER match_instance ON users_with_fb.user_id JOIN sein = match_instance.receiverID;! '? – Alk