Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Warunki - odpowiedni napis
Forum PHP.pl > Forum > PHP
kamil_lk
Witam.
Mam dwie tabele, znajomi oraz zaproszenia.
Podczas wyszukiwania chciałbym aby przy osobach które znajdziemy był odpowiedni napis, tj. Zaproś, Oczekuje, Znajomy/a
mam dwa zapytania sprawdzające czy w bazie jest taki record, a mianowicie:

  1. $zapytanie = mysql_query("SELECT * FROM `user` WHERE `imie` LIKE '%$imie%'");
  2. while($record = mysql_fetch_array($zapytanie)){
  3. if($record['5'] != $_SESSION['numer']){ // jeśli numer z bazy nie jest moim numerem to wyświetl
  4. $zapytanie2 = mysql_query("SELECT * FROM `zaproszenia` WHERE `wyslane_przez`=".$_SESSION['numer']." and `wyslane_do`=".$record['5']); // czy wysłałem zaproszenie do tej osoby
  5. $zapytanie3 = mysql_query("SELECT * FROM `znajomi` WHERE (`user_1`=".$_SESSION['numer']." and `user_2`=".$record['5'].") or `user_2`=".$_SESSION['numer']." and `user_1`=".$record['5']); // czy osoba jest moim znajomym
  6. if((!mysql_fetch_array($zapytanie2)) && (!mysql_fetch_array($zapytanie3))) //1
  7. echo $record['3']." ".$record['4']." <a href=?userid=".$record['5'].">Zaproś</a><br />";
  8. if((mysql_fetch_array($zapytanie2)) && (!mysql_fetch_array($zapytanie3))) //2
  9. echo $record['3']." ".$record['4']." - Oczekuje na akceptację<br />";
  10. if((!mysql_fetch_array($zapytanie2)) && (mysql_fetch_array($zapytanie3))) //3
  11. echo $record['3']." ".$record['4']." - Znajomy/a<br />";
  12. }
  13. }


Warunek #1 działa normalnie, tzn. gdy nie ma wpisów w żadnej tabeli to wyświetla 'Zaproś', natomiast #2 i #3 już nie działają (nic nie wyświetlają). Dana osoba, którą zaprosiłem (znajduje się w tabeli zaproszenia lub znajomi) nie wyświetla mi się podczas wyszukiwania. Możecie mnie naprowadzić co jest źle?

----------------------------------

Już poprawiłem, a mianowicie przed każdym warunkiem dałem te same zapytania. Może mi ktoś powiedzieć dlaczego tak się dzieje że przed każdym warunkiem musiałem wykonać te zapytania?

  1. $zapytanie2 = mysql_query("SELECT * FROM `zaproszenia` WHERE `wyslane_przez`=".$_SESSION['numer']." and `wyslane_do`=".$record['5']); // czy wysłałem zaproszenie do tej osoby
  2. $zapytanie3 = mysql_query("SELECT * FROM `znajomi` WHERE (`user_1`=".$_SESSION['numer']." and `user_2`=".$record['5'].") or user_2`=".$_SESSION['numer']." and `user_1`=".$record['5']); // czy osoba jest moim znajomym
  3.  
  4. if((!mysql_fetch_array($zapytanie2)) && (!mysql_fetch_array($zapytanie3)))
  5. echo $record['3']." ".$record['4']." <a href=?userid=".$record['5'].">Zaproś</a><br />";
  6.  
  7. $zapytanie2 = mysql_query("SELECT * FROM `zaproszenia` WHERE `wyslane_przez`=".$_SESSION['numer']." and `wyslane_do`=".$record['5']); // czy wysłałem zaproszenie do tej osoby
  8. $zapytanie3 = mysql_query("SELECT * FROM `znajomi` WHERE (`user_1`=".$_SESSION['numer']." and `user_2`=".$record['5'].") or `user_2`=".$_SESSION['numer']." and `user_1`=".$record['5']); // czy osoba jest moim znajomym
  9. if((mysql_fetch_array($zapytanie2)) && (!mysql_fetch_array($zapytanie3)))
  10. echo $record['3']." ".$record['4']." - Oczekuje na akceptację<br />";
  11.  
  12. $zapytanie2 = mysql_query("SELECT * FROM `zaproszenia` WHERE `wyslane_przez`=".$_SESSION['numer']." and `wyslane_do`=".$record['5']); // czy wysłałem zaproszenie do tej osoby
  13. $zapytanie3 = mysql_query("SELECT * FROM `znajomi` WHERE (`user_1`=".$_SESSION['numer']." and `user_2`=".$record['5'].") or `user_2`=".$_SESSION['numer']." and `user_1`=".$record['5']); // czy osoba jest moim znajomym
  14. if((!mysql_fetch_array($zapytanie2)) && (mysql_fetch_array($zapytanie3)))
  15. echo $record['3']." ".$record['4']." - Znajomy/a<br />";
ADeM
Jak już tak to robisz, to zrób to tak:
  1. $zapytanie = mysql_query("SELECT * FROM `user` WHERE `imie` LIKE '%$imie%'");
  2. while($record = mysql_fetch_array($zapytanie)){
  3. if($record['5'] != $_SESSION['numer']){ // jeśli numer z bazy nie jest moim numerem to wyświetl
  4. $zapytanie2 = mysql_query("SELECT * FROM `zaproszenia` WHERE `wyslane_przez`=".$_SESSION['numer']." and `wyslane_do`=".$record['5']); // czy wysłałem zaproszenie do tej osoby
  5. $zapytanie3 = mysql_query("SELECT * FROM `znajomi` WHERE (`user_1`=".$_SESSION['numer']." and `user_2`=".$record['5'].") or `user_2`=".$_SESSION['numer']." and `user_1`=".$record['5']); // czy osoba jest moim znajomym
  6.  
  7. $warunek1 = mysql_fetch_array( $zapytanie2 );
  8. $warunek2 = mysql_fetch_array( $zapytanie3 );
  9. if(!$warunek1 && !$warunek2) //1
  10. echo $record['3']." ".$record['4']." <a href=?userid=".$record['5'].">Zaproś</a><br />";
  11. if($warunek1 && !$warunek2) //2
  12. echo $record['3']." ".$record['4']." - Oczekuje na akceptację<br />";
  13. if(!$warunek1 && $warunek2) //3
  14. echo $record['3']." ".$record['4']." - Znajomy/a<br />";
  15. }
  16. }


Wszystko dzieje się dlatego, że przez przy każdym warunku wyciągasz następny rekord.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.