Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] explode w tablicy, jak z grupy ciągów wyodrębnić wszystkie wartości
--Grzegorz--
post 30.08.2007, 09:00:56
Post #1





Goście







Witam,

mam następujący problem: w tabeli MySQL jedną z kolumn jest ciąg id, oddzielonych np. ";". Jakiego polecenia powinienem użyć żeby wśród tych ciągów znaleźć wszystkie wiersze, w których pojawia się określone id?

Przykład:
Baza danych sieci sklepów ma tabelę z produktami. Do każdego produktu przyporządkowana jest grupa sklepów (w kolumnie "id_sklepu": "Warszawa;Wroclaw;Krakow;"). Jakiego polecenia powinienem użyć, żeby dowiedzieć się, jaki asortyment (wszystkie produkty) oferuje np. sklep w Krakowie? Wiem, że powinienem użyć funkcji explode() do rozdzielenia poszczególnych $id_sklepu, ale jak to zrobić, żeby funkcja zadziałała w całej tablicy, a później jeszcze przyporządkowała określone wyniki do danego $produkt?

Pozdrawiam,
Grzegorz
Go to the top of the page
+Quote Post
trafas
post 3.09.2007, 17:44:26
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 12
Dołączył: 31.05.2006

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


Witam.

Ja bym to zrobił w trochę prostszy sposób.

Jeżeli chcesz wzbierać produkty należące tylko do danego sklepu, to proponowałbym zrobienie dodatkowej tabeli z identyfokatorami sklepów i ich nazwami. Zrobić funkcję generującą pole wyboru (<select></select>) z nazwami sklepów typu:

<select name="opcje">
<option id="0" value="krak" selected>Kraków</option>
<option id="1" value="wawa">Warszawa</option>
<option id="2" value="wroc">Wrocław</option>
...itd
</select>

Wtedy w kolumnie "id_sklepu": trzymasz wartości "wawa;wroc;krak;")

Następnie robisz sobie funkcję jak poniżej:

  1. <?php
  2. function szukaj1($sklep)
  3. {
  4.  
  5. $zapytanie = mysql_query("select produkt from produkty where id_sklepu like '%$sklep%'") or die(mysql_error());
  6. $wiersze = mysql_num_rows($zapytanie);
  7.  
  8. echo "Ilosc wynikow : ".$wiersze."<br/>";
  9.  
  10. for($i = 0; $i <= $wiersze; $i++)
  11. {
  12. $prz = mysql_fetch_array($zapytanie);
  13. echo $prz[0]."<br/>";
  14. }
  15. }
  16.  
  17. $wartosc_pobrana = $_POST['opcje'];
  18. echo "Produkty w sklepie : ".$wartosc."<br/>";
  19.  
  20.  if($wartosc != "")
  21. {
  22. szukaj1($wartosc);
  23. }else{echo "brak produktów";}
  24. ?>


Ważne jest żeby przypadkiem identyfikatory sklepów Ci się nie pomyliły.
To by było na tyle.
Pozdro.
Go to the top of the page
+Quote Post
--Grzegorz--
post 4.09.2007, 08:52:40
Post #3





Goście







Dziękuję, trafas. Pozdrawiam smile.gif
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 Wersja Lo-Fi Aktualny czas: 14.07.2025 - 17:36