Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak zdanie - string przekształcić na tablicę array
Forum PHP.pl > Forum > Przedszkole
lukaszrw
  1. $i_prod = "60, 62, 70, 80, 205, 206";
  2. $produkty = array($i_prod);
  3.  


Oczywiście $i_prod jest stringiem składającym się z pojedynczych numerów poprzedzielanych przecinkami.
Jak zamienić ten string na tablicę array, tak aby każdy numer - pozycja była kolejnym wierszem tablicy ?

oczekiwany wynik:
$produkty[0] = 60;
$produkty[1] = 62;
$produkty[2] = 70;
$produkty[3] = 80;
$produkty[4] = 205;
$produkty[5] = 206;
Fifi209
explode

  1. $tablica = explode(', ', $string);
lukaszrw
faktycznie explode() rozwiązało problem exclamation.gif! serdecznie dziękuję!

  1. $i_prod = "60, 62, 70, 80, 205, 206";
  2. $tablica = explode(', ', $i_prod);
  3. print_r($tablica);
  4.  
  5. $ix = 0;
  6. while(each($tablica)){
  7. echo $tablica[$ix] . "|";
  8. if($ix == 0){
  9. $ee = "";
  10. }else{
  11. $ee = " OR";
  12. }
  13. $select_id = $select_id.$ee." id_produkty = ".$tablica[$ix]." ";
  14. $ix++;
  15. }
  16. $ix = Null;
  17.  
  18. mysql_select_db($database_moja, $moja);
  19. $query_rs_produkty = "SELECT id_produkty, produkty_foto, produkty_nazwa_pl FROM tb_produkty WHERE ".$select_id." ORDER BY id_prod_kategorie ASC";
  20. $rs_produkty = mysql_query($query_rs_produkty, $moja) or die(mysql_error());
  21. $row_rs_produkty = mysql_fetch_assoc($rs_produkty);
  22. $totalRows_rs_produkty = mysql_num_rows($rs_produkty);
  23.  

  1. <tr>
  2. <td>id</td>
  3. <td>nazwa</td>
  4. <td>obrazek</td>
  5. </tr>
  6. <?php do { ?>
  7. <tr>
  8. <td><?php echo $row_rs_produkty['id_produkty']; ?></td>
  9. <td><?php echo $row_rs_produkty['produkty_nazwa_pl']; ?></td>
  10. <td><?php echo $row_rs_produkty['produkty_foto']; ?></td>
  11. </tr>
  12. <?php } while ($row_rs_produkty = mysql_fetch_assoc($rs_produkty)); ?>

Kod działa już poprawnie, ale czy jest to jego poprawna składnia questionmark.gif?
Szczególnie chodzi mi o poprawność instrukcji SQL:
"SELECT id_produkty, produkty_foto, produkty_nazwa_pl FROM tb_produkty WHERE ".$select_id." ORDER BY id_prod_kategorie ASC";
... do której wstawiłem mój wynik: $select_id
markonix
Tak, można dodać `kolumna` czyli:
  1. SELECT `id_produkty`, `produkty_foto`, `produkty_nazwa_pl` FROM `tb_produkty` WHERE ".$select_id." ORDER BY `id_prod_kategorie` ASC


Ale PHP bym troszkę poprawił:

  1. $res = mysql_query("SELECT `id_produkty`, `produkty_foto`, `produkty_nazwa_pl` FROM `tb_produkty` WHERE ".$select_id." ORDER BY `id_prod_kategorie` ASC");
  2. $row_rs_produkty = mysql_fetch_assoc($res);
  3. $totalRows_rs_produkty = mysql_num_rows($res);
Fifi209
Cóż to za warunek?

WHERE wartość ORDER BY

Gdzie wartość Posortuj
lukaszrw
Ta moja dziwna składnia PHP pochodzi z Dreamwavera CS4, trochę nadmiarowy kod, ale sporo upraszcza.
Fifi209
Nie rozumiem co ma zapytanie do Dreamwavera?
markonix
Cytat(Fifi209 @ 30.06.2011, 23:14:05 ) *
Cóż to za warunek?

WHERE wartość ORDER BY

Gdzie wartość Posortuj


On ma w tej zmiennej przecież nazwę kolumny więc te WHERE jest prawidłowe wink.gif
Fifi209
GDZIE `kolumna` POSORTUJ

;]
lukaszrw
Nie wiem o co chodzi, rekordy są wybrane z tabeli i ustawione w kolejności: ORDER BY id_prod_kategorie ASC,
więc jak mam posortować recordy w kolumnach questionmark.gif?

Po to właśnie zadałem pytanie na forum aby się dowiedzieć jak to zrobić.

Jeśli w kategorii forum: "Przedszkole" nie możesz pomóc, to trudno, może ktoś inny powie mi o co Ci chodzi.
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.