Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przeszukiwanie tablicy z explode
Maciek316
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Witam, mam taki problem:
Robie system polubien, cos ala facebook.
Mam komórke w bazie danych gdzie trzymam id uzytkownikow którzy polubili dane zdjecie i jest to zapisywane w formie:
71;21;93;103 (numerki to id uzytkownika)
Potem funkcja explode to rozdzielam:
  1. $polubienia = explode(';',$tablica->polubienia);

Nastepnie zliczam count'em.
Wszystko jest super, ale jak sprawdzic czy dany uzytkownik juz polubil to zdjecie?
Trzeba przeszukac $tablice, tylko w jaki sposob?

PS. Czy obralem w miare dobre rozwiazanie?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Rozwiazanie jest beznadziejne. Polubienia powinny byc w dodatkowej tabeli z polami
ID_CZEGO_POLUBIL
ID_KTO_POLUBIL


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Maciek316
post
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Zrobiłem tak jak jak powiedziales i natrafilem na kolejny blad:
Wyciagam i zliczam polubienia(dziala)
  1. $polubienia = all("select * from polubienia where id_car =".$tablica_zdjecia->id);
  2. if($polubienia) $zlicz = count($polubienia);
  3. else $zlicz = 0;

Nastepnie chce sprawdzic czy juz to polubilem:
  1. function zlajkowane($id, $user)
  2. {
  3. $zlajkowane = query("select * from polubienia where id_car = ".$id." AND id_user = ".$user."") or die("Cannot execute SELECT query.");
  4. if($zlajkowane) echo "Juz to zlajkowales";
  5. zlajkowane($tablica_zdjecia->id,$player->user);
  6. }
  7.  

I nie działa, zapytanie sprawdzalem juz kilka razy i na pewno jest dobre ohmy.gif
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Zliczanie liczby rekordow robi sie w mysql poprzez count() a nie w php poprzez pobranie wszystkich rekordow i zliczenie ich liczby :/

2) Zebys jeszcze uraczyl nas kodem query() to by bylo milo. Bo teraz moge jedynie wrozyc:
query() zwraca wynik czy sie zapytanie powiodlo czy nie. A jak nie ma rekordu to zapytanie tez sie powiodlo wiec wynikiem teze jest true, stad niezaleznie czy masz rekord czy nie to zawsze dostajesz true.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Maciek316
post
Post #5





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


query() to zwykle mysql_query:
  1. function query($sql){ mysql_query($sql); }


Czyli jak sprawdzic czy juz dane zdjecie polubilem?
Dziekuje za podpowiedzi :/
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Dziekuje za podpowiedzi :/
I po co tam krzywa mina na koncu?

Jak sprawdzic czy twoj wpis juz jest? Albo zliczyc liczbe rekordow z twoim wpisem przez count(), pobrac rekord i sprawdzi te liczbe, albo pobrac pierwszy rekord z twojego zapytania sprawdzajacego. Jak jest rekord, znaczy ze jest twos wpis. Jak nie ma rekordu, znaczy ze nie ma wpisu.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Maciek316
post
Post #7





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Stosujac sie do drugiej opcji:
  1. $zlajkowane = mysql_query("select * from polubienia where id_car = ".$id." AND id_user = ".$user."") or die("Cannot execute SELECT query."); // nie dziala

to zapytanie nie zwraca mi zadnego rekordu, a jest ich kilka. Kiedy dam echo $id badz $user pokazuje mi dobre dane, w bazie danych sa takie same, wiec teoretycznie echo $zlajkowane['id_car'] powinno cos pokazac, a tu nic.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez w tym kodzie nigdzie nie pobierasz rekordu... Ile razy mozna mowic, ze mysql_query jedynie wykonuje zapytanie? Do pobrania rekordu z wykonanego zapytania masz przeciez inne funkcje, ktore notabene juz uzywasz w innych czesciach kodu.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Maciek316
post
Post #9





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

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


Wlasnie dlatego byla minka :/, nic nie moge zapamietac smile.gif
W kazdym badz razie teraz juz wszystko dziala, wiec temat mozna zamknac.
Dziekuje za pomoc!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 23:26