Problem mit DB abfrage in 2 Richtungen

Godstyle

Erfahrenes Mitglied
Hallo Gemeinde,

ich versuche derzeit folgendes zu realisieren, ich möchte eine freundschaftsanfrage für Mitglieder erstellen, mein Ansatz weißt jedoch ein großes Problem auf, ich zeige euch zunächst einmal mein Script und komme dann zu dem Problem.

Anzeige meiner Freunde:

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once('includes/com/pages/home/home.ink.php');
$min = 1 ;
	$chk_friend = "SELECT ".
						"user1, user2, status ".
				  "FROM ".
				  		"friends ".
				  "WHERE ".
						"(status = '".($min)."') AND ". 
   		   				"(user2 = '".($_SESSION['usid'])."')"; 
	$result = mysql_query ($chk_friend);  					
	
if (mysql_num_rows ($result) > 0)  
{	while($row = mysql_fetch_object($result)) {

	$user1 = $row->user1;

$sql = mysql_query("SELECT  `userid`, `userimg`, `user`, `img_stat` FROM `ow_user_data`, `ow_login` WHERE  `userid` =  '".$user1."' AND `userid` = `id`");				
	
if (mysql_num_rows ($sql) > 0)  
{ 
while($row = mysql_fetch_object($sql)) { ?>

Mir ist bewusst das am ende die } fehlen, im Original sind sie vorhanden.

Die Db dazu heißt friends und beinhaltet id | user1 | user2 | status

alle weiteren Inhalte sind irrelevant bei meinem Problem.

Nun ist folgendes, wenn mir jmd. eine Freundschaftsanfrage sendet, wird dieser User als user1 gespeichert und ich als user2. sobald ich annehme wird der status von 0 auf 1 geändert.

Jetzt ist das script so, das ich als user2 alle freundschaften Angezeigt bekomme, User1 jedoch nicht.

Wie kann ich nun die Abfrage ändern, das in beide richtungen abgefragt wird und immer das entsprechende andere ausgegeben wird?

Ich hoffe Ich konnte die Frage deutlich genug stellen, sonst bin ich für Rückfragen online ;)

lg
 
Nunja, vllt so?

PHP:
    $chk_friend = "SELECT ".
                        "user1, user2, status ".
                  "FROM ".
                          "friends ".
                  "WHERE ".
                        "(status = '".($min)."') AND ". 
                              "(user2 = '".($_SESSION['usid'])."' OR user1 = '".$_SESSION['usid']."')";
 
Danke saftmeister, diesen Ansatz hatte ich auch bereits im Sinn, doch komme ich dann bei der Ausgabe an das Problem, das ich mit $row->user auch meine eigenen Werte....

So an der Stelle unter breche ich da ich die Lösung wohl habe, melde mich nach der versuch mit einer If !== Prüfung wieder.
 
Edit: Hab das falsche hier wiederhergestellt.

Also, es klapp, ich danke dir da du mich auf die Idee gebracht hast, gelöst hab ich es wie folgt:

if($user2 !== $_SESSION['usid']) {


sicher nicht die eleganteste Lösung aber es klappt ;)

lg
 
Zurück