[php]jakie zapytanie w informacji dodawania użytkownika

Witam mam problem z zapytaniem i informacją ,która uniemożliwi dodawanie samego siebie do znajomych użytkownika.

function status_uzytkownikow()
{

$id_kogo = $_SESSION['id_usera'];
if(!empty($id_kogo))                                                                                                                                                                                                        
$id = $_GET['id'];
$id = htmlspecialchars($id);
$id = strip_tags($id);
$id = trim($id);
if(!empty($id) && is_numeric($id))             
{
$zapytanie1 = "SELECT * FROM `".prefix."znajomosci` WHERE  `id_kogo`='".$id_kogo."' && `id_uzytk`='".$id."' and `zaakceptowane`='tak' || `id_uzytk`='".$id_kogo."' && `id_kogo`='".$id."' and `zaakceptowane`='tak' LIMIT 1";
$zapytanie2 = "SELECT * FROM `".prefix."znajomosci` WHERE  `id_uzytk`='".$id_kogo."' && `id_kogo`='".$id."' and `zaakceptowane`='nie'";    
polacz();                                                                                                                                                                                                                            
$result1 = @mysql_query($zapytanie1);                                                                                                                                            
$result2 = @mysql_query($zapytanie2);                                                                                                            
    if (mysql_num_rows($result1) > 0){
echo '<button>znajomy</button>';                                                                                                                                                    
    }                                                                                                                                                                                                                                                     
else if (mysql_num_rows($result2) > 0){                                 
    echo '<button>wysłałeś zaproszenie</button>';                                             
    }                                                                
    else {                                                                                 
    echo '<a href="index.php?strona=polec&id='.$id.'"><button>Dodaj do znajomych</button></a>';    
    }

rozlacz();                                                                                                                                                                                                                                    

    }                                                                                                                                                                                                                                                                }                                                                                                                                                                                                                                                               } }

Czyli zapytanie3 podmieniające informacje,która uniemożliwi dodawanie samego siebie,jak to zrobić ??? :wink:

Nie możesz po prostu zablokować prostym if’em tej operacji ? Masz tam id_usera i id, do tego, do którego chcesz wysłać zaproszenia. Wystarczy sprawdzić czy są równe sobie. Jeżeli nie to coś się wymyśli :slight_smile:

Witam,dodałem zapytanie sprawdzające3 i if-a,ale jak dodam else przed if to mi błąd wywala

function status_uzytkownikow()
{
$id_kogo = $_SESSION['id_usera'];                                                                                                                                                                                            if(!empty($id_kogo))                                                                                                                                                                                                        
$id = $_GET['id'];
$id = htmlspecialchars($id);
$id = strip_tags($id);
$id = trim($id);
if(!empty($id) && is_numeric($id))             
{
$zapytanie1 = "SELECT * FROM `".prefix."znajomosci` WHERE  `id_kogo`='".$id_kogo."' && `id_uzytk`='".$id."' and `zaakceptowane`='tak' || `id_uzytk`='".$id_kogo."' && `id_kogo`='".$id."' and `zaakceptowane`='tak' LIMIT 1";
$zapytanie2 = "SELECT * FROM `".prefix."znajomosci` WHERE  `id_uzytk`='".$id_kogo."' && `id_kogo`='".$id."' and `zaakceptowane`='nie'";                                                                                                                                                                                                $zapytanie3 = "SELECT * FROM `".prefix."znajomosci` WHERE `id_uzytk`='".$id_kogo."' && `id_kogo`='".$id."' and `zaakceptowane`='tak'";
polacz();                                                                                                                                                                                                                            
$result1 = @mysql_query($zapytanie1);                                                                                                                                            
$result2 = @mysql_query($zapytanie2);                                                                                                                                            
$result3 = @mysql_query($zapytanie3);                                                                                                            
if (mysql_num_rows($result1) > 0){
echo '<button>znajomy</button>';                                                                                                                                                    
}                                                                                                                                                                                                                                                     
else if (mysql_num_rows($result2) > 0){                                 

echo '<button>wysłałeś zaproszenie</button>';                                             
}                                                                
else {                                                                                 
echo '<a href="index.php?strona=polec&id='.$id.'"><button>Dodaj do znajomych</button></a>';    
}
if (mysql_num_rows($result3) == 0){                                 
echo '<button>to ty</button>';                                             
}else {                                                                                 
echo '<button>to nie ty</button>';    
}
rozlacz();                                                                                                                                                                                                                                    
}            } }

informację wyswietla chyba dobrze,może złe zapytanie zrobiłem żeby else zadziałało? ??

Jeśli robisz @mysql_query bez “dodatków” to nie zobaczysz gdzie jest błąd w zapytaniu.

$result1 = mysql_query($zapytanie1) or die($zapytanie1.' '.mysql_error());   
$result2 = mysql_query($zapytanie2) or die($zapytanie2.' '.mysql_error());   
$result3 = mysql_query($zapytanie3) or die($zapytanie3.' '.mysql_error());

I zobacz co się dzieje.

 

 

 

Tak na marginesie nie używaj SELECT * gdzie nie potrzebujesz, wystarczy tylko 1 pole.

I druga rzecz w pierwszym zapytaniu - chyba to drugie jest prostrsze i szybsze, a oznacza to samo [w skrócie matematycznym: 1*2*3+1*2*3 = (1*2+1*2)*3]

... `id_kogo`='".$id_kogo."' && `id_uzytk`='".$id."' and `zaakceptowane`='tak' || `id_uzytk`='".$id_kogo."' && `id_kogo`='".$id."' and `zaakceptowane`='tak' ....


... ( `id_kogo`='".$id_kogo."' and `id_uzytk`='".$id."' or `id_uzytk`='".$id_kogo."' and `id_kogo`='".$id."' ) and `zaakceptowane`='tak' ...

Zmieniłem zapytania,trzech nie trzeba,wystarczy przyrównać zmienne,a może się mylę ??? :wink:

$zapytanie1 = "SELECT * FROM `".prefix."znajomosci` WHERE ( `id_kogo`='".$id_kogo."' and `id_uzytk`='".$id."' or `id_uzytk`='".$id_kogo."' and `id_kogo`='".$id."' ) and `zaakceptowane`='tak' LIMIT 1";
$zapytanie2 = "SELECT * FROM `".prefix."znajomosci` WHERE (`id_uzytk`='".$id_kogo."' and `id_kogo`='".$id."')

if (mysql_num_rows($result1) > 0){
echo '<button>znajomy</button>';																																					
} 																																																													 
else if (mysql_num_rows($result2) > 0){                                 
echo '<button>wysłałeś zaproszenie</button>';			 								
}else if ($id_kogo == $id){ 																				
echo '<button>nie możesz dodać do znajomych</button>';	
}															
else { 																				
echo '<a href="index.php?strona=polec&id='.$id.'"><button>Dodaj do znajomych</button></a>';	
}  
rozlacz();																																																									

}}}

Już sobie poradziłem z if-ami,działa dobrze-chyba.Dziękuję za pomoc,chyba że jeszcze jest zle to proszę o podpowiedż :wink: