Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z zapytaniem
Forum PHP.pl > Forum > Przedszkole
ermar
Witam.

Siedzę nad pewnym problemem już drugi dzień i nie bardzo potrafię go rozwiązać.
Wydawało by się, że banał ale nie bardzo mogę sobie poradzić.


Wkleję poniżej kod zawarty w pliku który jest includowany do szablonu strony.

  1. if (is_numeric($id_kategorii))
  2. {
  3.  
  4.  
  5. $sql_kategoria = "SELECT * FROM `menu_strony` WHERE `id` = '$id_kategorii'";
  6. $wykonaj_kategoria = mysql_query($sql_kategoria);
  7. $rekord_temp = mysql_fetch_array($wykonaj_kategoria);
  8. $tytul_strony = $rekord_temp[1];
  9.  
  10. function pokaz_artykuly()
  11. {
  12. global $id_kategorii;
  13. $sql_wyswietlenie_wpisow = "SELECT * FROM `artykul` WHERE `id_kategoria` = $id_kategorii";
  14. echo $sql_wyswietlenie_wpisow;
  15. $wykonaj_wyswietlenie_wpisow = mysql_query($sql_wyswietlenie_wpisow)or die('Zapytanie: '. $sql_wyswietlenie_wpisow.' --- błąd: '.mysql_error());
  16. // print_r($wykonaj_wyswietlenie_wpisow);
  17. // var_dump($wykonaj_wyswietlenie_wpisow);
  18. // echo $wykonaj_wyswietlenie_wpisow;
  19.  
  20.  
  21. while ($rekord_artykulu = mysql_fetch_array($wykonaj_wyswietlenie_wpisow));
  22. {
  23. echo '<div style="border: solid 1px black; padding: 5px;">'."\r\n";
  24. echo '<h2>'.$rekord_artykulu[2].'</h2>'."\r\n";
  25. echo '<i>'.$rekord_artykulu[6].'</i>'."\r\n";
  26. echo $rekord_artykulu[3];
  27. echo '<a href="index.php?pokaz=artykul&nr='.$rekord_artykulu[0].'">więcej ...</a>'."\r\n";
  28. echo '</div>'."\r\n";
  29. }
  30.  
  31. }
  32. }


W szablonie jest wybór przez case ładowania tego pliku. W treści szablonu w sekcji w której wyświetlam dane na stronie wstawiłem funkcje z tego pliku. Wszystko działa. Zapytanie sql które sobie kontrolnie wyświetlam jest prawidłowe. Parametr przechodzi. Zapytanie wklejone do phpmyadmin zwraca prawidłowy wynik (czyli odpowiednie rekordy).

Tyle że nie działa nic w pętli while.
Próba wyświetlenia danych ze zmiennej $wykonaj_wyswietlenie_wpisow zwraca w przypadku użycia print_r i echo to samo czyli resource #8( i to mnie dziwi i tu na pewno leży pies pogrzebany). var_dump dokładnie to samo w lekko bardziej rozbudowanej formie.

Nie wiem gdzie strzeliłem babola. Nie mogę tego wyłapać i w związku z tym proszę o pomoc.

Pozdrawiam
ermar
ziqzaq
Znajdź błąd w poniższym kodzie a znajdziesz w swoim winksmiley.jpg
  1. $fp = fopen("temp.html", "r");
  2. while ( $current_line = fgets($fp) );
  3. {
  4. echo $current_line;
  5. }
  6. fclose($fp);
thek
To ja może napisze wprost... Nie stawiaj średnika za nawiasami WHILE smile.gif
  1. while ($rekord_artykulu = mysql_fetch_array($wykonaj_wyswietlenie_wpisow));
To nie jest błąd, gdyż tego typu składnie stosuje się, ale wtedy musisz wewnątrz napisać co chcesz zrobić od razu z $rekord_artykulu. Użycie średnika bowiem informuje, że dalej jest kod nie tyczący instrukcji WHILE. Pozbądź sie go a wtedy pętla zadziała winksmiley.jpg
a przykład działającego kodu z Twoją wersją i srednikiem to przeróbka przykładu kolegi niżej.
  1. while ( echo $current_line = fgets($fp) );
Dzięki temu zapisowi mogę wyświetlać poprzez echo kolejne linie, dopiero co popbrane z pliku.
ermar
Witam.

Właśnie wykopałem się z dołka do którego wpadłem ze wstydu smile.gif.


Zdaję sobie sprawę ze składni pętli i ten odruchowo postawiony średnik kosztował mnie dwa dni a podejrzewam, że bez świeżego oka bym na to nie wpadł. Dziękuję bardzo.

Pozdrawiam
ermar
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.