Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL]Znajomi
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Witam nie znam dobrze sql wiec musze o cos zapytac

Mam takie zapytanie
  1. <?php
  2. $znajomi = mysql_query('select * from znajomi where dla_kogo = "'.mysql_real_escape_string($_GET['user']).'" and stan = "akceptowano" order by id desc', $db);
  3. ?>


Mam tabele znajomi i w niej kolumny
id
tresc
dodal
dla_kogo
stan
data

Gdy ktos wysyla zaproszenie user moze je akceptowac juz odrzucic jednak gdy zaakaceptuje to znajmomy wyswietla sie tylko w profilu osoby odbierajacej zaproszenie a w profilu osoby wysylajacej juz nie czy ktos moze mi powiedziec jak powinno wygladac zapytanie zeby widziala i osoba wysylajaca jak i osoba odbierajaca zaproszenie??

P.S kolumna STAN moze miec 3 wartosci CZEKAM gdy wyslalo ODRZUCONO gdy nie akceptowano i AKCEPTOWANO jesli akceptowano
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nithajasz
post
Post #2





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Wykonaj w phpmyadminie zapytanie :

  1. SELECT * FROM znajomi WHERE (dla_kogo LIKE 'Bios' OR dodal LIKE 'Bios') AND stan LIKE 'akceptowano';


Zapytanie powinno zwrócić Ci 3 rekordy id: 1, 2 ,3.. i te rekordy mógłbyś wyświetlić w profilu gracza np w taki sposób:

  1. <?php
  2. $query = "SELECT * FROM znajomi WHERE (dla_kogo LIKE 'Bios' OR dodal LIKE 'Bios') AND stan LIKE 'akceptowano'";
  3. $rQuery = mysql_query($query);
  4.  
  5. echo "Znajomi Bios: ";
  6. while ($r = mysql_fetch_array($rQeury)){
  7. if($r['dla_kogo'] == 'Bios') echo $r['dodal']; else echo $r['dla_kogo']; 
  8. }
  9. ?>


Tak nawiasem, mówiąc takie coś jak stan lepiej jest przechowywać jako tinyint i zmieniać mu wartości w zależności od stanu np. 0 - nie odczytany, 1 - zaakceptowany, 2 - odrzucony. Tak samo co do użytkowników, to ja bym podawał ich id a nie nazwy..


Edit :

Zrobiłem sobie podobną bazę tylko zamiast nazw userów dalem A, B, C tak jak Ty masz 3 pierwsze rekordy.

Wklepałem do phpMyAdmina :

  1. SELECT *
  2. FROM `znajomi` WHERE od LIKE 'B' OR dla LIKE 'B';


I wyrzuciło wszystkie 3 rekordy więc zapytanie jest dobre. Reszta to kwestia co zrobisz z wynikami tego zapytanie jak je wypiszesz...

Ten post edytował nithajasz 28.05.2008, 18:50:43
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 17:59