Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Array ze zmiennej
Forum PHP.pl > Forum > PHP
spit
Cześć,
Chcę zrobić listę kategorii, którą pobieram z MySQL. Trzymam ją tam w formie "asd","sdd","ghk" itp. W tym celu posługując się przykładem manuala wycisnąłem z siebie coś takiego
  1. <?php
  2. $tabl = array("mike patton","fantomas","tomahawk");
  3. reset ($tabl);
  4. while (list(, $wartość) = each ($tabl)) {
  5. $wartośc = $wartość;
  6. $wartośc = str_replace (" ", "+", $wartość);
  7. echo "<li><a href=kategoria,$wartośc>$wartość;</a></li>"; }
  8. ?>
. I wszystko gra, ale tylko wtedy, gdy $tabl jest wpisana "ręcznie". Jeżeli dla tej zmiennej dam $rekord['kat'] (czyli pobiorę te wartości z bazy, o takim samym formacie), nie działa (wychodzi sama zawartość bazy, bez podzielenia). Co zrobić?
jezoo
pokaz w jaki sposob tworzysz ta tabele, tzn jak pobierasz z bazy i w jaki sposob je przypisujesz
matix
Na 100% źle pobierasz dane z bazy mysql:

  1. <?php
  2. $host = '';
  3. $user = '';
  4. $pass = '';
  5. $database = 'tabela';
  6. $tabela = 'test';
  7.  
  8. $oDb = mysql_connect($host, $user, $pass);
  9.  
  10. if ($oDb)
  11. mysql_select_db($database);
  12.  
  13. $query = mysql_query('select * from '.$tabela);
  14.  
  15. while ($record = mysql_fetch_assoc($query))
  16. {
  17. echo $record[id].'<br/>';
  18. }
  19.  
  20. ?>


Pozdro tongue.gif
spit
  1. <?php
  2. $zapytanie = "SELECT a.*, COUNT(b.id) as ilosc_komentarzy FROM news a LEFT JOIN komentarze b ON (a.id = b.nid) GROUP BY a.id ORDER BY a.data DESC limit 0,5";
  3. $wynik = mysql_query($zapytanie) or die(mysql_error());
  4. while($rekord=mysql_fetch_array($wynik)) {
  5. $tagi = $rekord['kat'];
  6. $data = date("d M",strtotime($rekord["data"]));
  7. (...)
  8. <li><a href="#" class="open">tagi</a></li>
  9. </ul>
  10. <ul class="kom">';
  11. $tabl = array($tagi);
  12. reset ($tabl);
  13. while (list(, $wartość) = each ($tabl)) {
  14. $wartośc = $wartość;
  15. $wartośc = str_replace (" ", "+", $wartość);
  16. echo "<li><a href=\"kategoria,$wartośc\">$wartość;</a></li>"; }
  17. echo '<li><span class="closecat">schowaj</span></li></ul>
  18. </div>; }
  19. ?>

Nie wiem, co tu może być źle, wszystko prócz array działa. Dodam, że jeżeli zrobię to bez bazy, tj. zadeklaruję zmienną $tagi osobno przypisując jej wartości w takim formacie ("mike patton","fantomas","tomahawk"), też nie działa.
jezoo
1) w skryptach PHP nie uzywa sie polskich znakow
2) $tagi zawsze masz rowne 1 czyli u Ciebie jest tylko $tagi[0] i nic pozatym. spr zrobic w ten sposob:
  1. <?php
  2. (...)
  3. while($rekord=mysql_fetch_array($wynik)) {
  4. $tagi[$i+=1] = $rekord['kat'];
  5. (...)
  6. ?>
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.