Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nie widzi rekordu
Forum PHP.pl > Forum > PHP
colinQ
Tworzę sklep internetowy, i już z początku mam problemy...

Mam w bazie w tabeli produkty 1 rekord, a skrypt wyświetla że nie ma...



  1. // index.php
  2.  
  3. <?php 
  4. include("includes/mysql.php");
  5. include("includes/funkcje_wszystkie.php");
  6. tworz_naglowek();
  7. tworz_menu();
  8. tworz_blok();
  9. tworz_stopke();
  10. ?>
  11.  
  12. // funkcje_wszystkie.php
  13.  
  14. <?php 
  15.  
  16. include_once("includes/funkcje_bazy.php");
  17.  
  18. include_once("includes/funkcje_produkty.php"); 
  19.  
  20. include_once("includes/funkcje_wyswietl.php"); 
  21.  
  22. ?>
  23.  
  24. // funkcje_bazy.php
  25.  
  26. <?
  27.  
  28. function wynik_bd_do_tablicy($wynik)
  29. {
  30. $tablica_wyn = array();
  31.  
  32. for($licznik=0; $rzad = mysql_fetch_assoc($wynik); $licznik++)
  33. $tablica_wyn[$licznik] = $rzad;
  34. return $tablica_wyn;
  35. }
  36.  
  37. ?>
  38.  
  39.  
  40. // funkcje_produkty.php
  41.  
  42. <?
  43.  
  44. function pobierz_kategorie()
  45. {
  46.  $zapytanie = "select * from kategorie";
  47.  $wynik = mysql_query($zapytanie);
  48.  if(!$wynik)
  49. return false;
  50.  $ilosc_kat = mysql_num_rows($wynik);
  51.  if ($ilosc_kat == 0)
  52. return false;
  53.  $wynik = wynik_bd_do_tablicy($wynik);
  54.  return $wynik;
  55. }
  56.  
  57. function pobierz_nazwe_kategorii($idkat)
  58. {
  59.  $idkat = intval($idkat);
  60.  $zapytanie = "select nazwa from kategorie where idkat='$idkat'";
  61.  $wynik = mysql_query($zapytanie);
  62.  if (!$wynik)
  63.  return false;
  64.  $ilosc_kat = mysql_num_rows($wynik);
  65.  if ($ilosc_kat == 0)
  66.  return false;
  67.  $rzad = mysql_fetch_object($wynik);
  68.  return $rzad->nazwa;
  69.  echo $rzad->nazwa;
  70. }
  71.  
  72. function pobierz_produkty($idkat)
  73. {
  74.  if (!$idkat || $idkat=='')
  75.  return false;
  76.  
  77.  $zapytanie = "select * from produkty where idkat='$idkat'";
  78.  $wynik = mysql_query($zapytanie);
  79.  if (!$wynik)
  80.  return false;
  81.  $ilosc_prod = mysql_num_rows($wynik);
  82.  if ($ilosc_prod ==0)
  83. return false;
  84.  $wynik = wynik_bd_do_tablicy($wynik);
  85.  return $wynik;
  86. }
  87.  
  88. ?> 
  89.  
  90. // funkcje_wyswietl.php
  91.  
  92. <? function tworz_naglowek() { ?> <link rel="Stylesheet" type="text/css" href="style.css" > <body background="back.png"> <div align="center"> <div id="lay"><? } ?>
  93. <? function tworz_menu() { include("includes/menu.php"); } ?>
  94. <? function tworz_blok() { ?> 
  95. <div id="blok">
  96. <? 
  97.  if(isset($_GET['page'])) {
  98.  $get_index = $_GET['page'];
  99.  include("includes/$get_index.php"); 
  100.  } else { 
  101.  $tablica_kat = pobierz_kategorie(); 
  102.  wyswietl_kategorie($tablica_kat); 
  103.  }
  104. ?>
  105. </div> 
  106. <? } ?>
  107. <? function tworz_stopke() { ?><div id="stopka">copyright by konrad.kolasa</div> </div> </div> <? } ?>
  108. <? function tworz_html_url($url, $tytul) { echo '<a href='.$url.'>'.$tytul.'</a>'; } ?>
  109. <? 
  110. function wyswietl_kategorie($tablica_kat)
  111. {
  112. if(!is_array($tablica_kat))
  113. {
  114. echo 'Brak dostępnych kategori!<br>';
  115. return;
  116. }
  117. echo '<ul>';
  118. foreach ($tablica_kat as $rzad)
  119. {
  120. $url = 'index.php?page=pokaz_kat&idkat='.($rzad['idkat']);
  121. $tytul = $rzad['nazwa'];
  122. echo '<li>';
  123. tworz_html_url($url, $tytul);
  124. echo '</li>';
  125. }
  126. echo '</ul>';
  127. }
  128.  
  129. function wyswietl_produkty($tablica_produktow)
  130. {
  131. //wyświetlenie wszystkich książek z przekazanej tablicy
  132. if (!is_array($tablica_produktow))
  133. {
  134.  echo '<br />Brak aktualnie dostępnych produktów w tej kategorii<br />';
  135. }
  136. else
  137. {
  138. foreach ($tablica_produktow as $rzad)
  139. {
  140. $url = 'pokaz_prod.php?isbn='.($rzad['nr']);
  141. $tytul = $rzad['nazwa'];
  142. tworz_html_url($url, $tytul);
  143.  
  144. }
  145. }
  146. }
  147.  
  148. ?>



Problem w tym że: Brak aktualnie dostępnych produktów w tej kategorii
Cienki1980
A pokaż gdzie wywołujesz funkcję wyswietl_produkty() bo jakoś chyba oślepłem i nie potrafię znaleźć jej wywołania.
colinQ
zapomniałem winksmiley.jpg

  1. <?
  2. include("includes/funkcje_produkty.php");
  3. $idkat = $_GET['idkat'];
  4.  
  5. $nazwa = pobierz_nazwe_kategorii($idkat);
  6.  
  7. echo $idkat;
  8.  
  9. $tablica_produktow = pobierz_produkty($idkat);
  10.  
  11. wyswietl_produkty($tablica_produktow);
  12.  
  13.  
  14. ?>
Cienki1980
Na Twoim miejscu sprawdziłbym, czy $tablica_produktow zawiera to co ma zawierać.
Jeżeli nie to błąd jest gdzieś w funkcji która tworzy tą tablicę.

PS: przekombinowałeś trochę z funkcją zwracająca tablice z bazy danych. Sprawdź może takie rozwiązanie:
  1. <?php
  2. function fetchArray($wynik)
  3. {
  4.  while($row=mysql_fetch_array($wynik))
  5. $tab[]=$row;
  6.  return $tab;
  7. }
  8. ?>
colinQ
zamiast czego ja to mam podstawić??
phpion
Cytat(colinQ @ 28.10.2007, 18:36:24 ) *
zamiast czego ja to mam podstawić??

Pewnie zamiast tego:
  1. <?php
  2. function wynik_bd_do_tablicy($wynik)
  3. {
  4. $tablica_wyn = array();
  5.  
  6. for($licznik=0; $rzad = mysql_fetch_assoc($wynik); $licznik++)
  7. $tablica_wyn[$licznik] = $rzad;
  8. return $tablica_wyn;
  9. }
  10. ?>
Cienki1980
Jeżeli napisałeś sam funkcje które pokazałeś w kodzie powinieneś wiedzieć gdzie masz funkcję zwracająca rekordy z bazy danych w postaci tablicy blinksmiley.gif
Masz zrobić dokładnie to co napisał phpion.com ale wcześniej sprawdź czy tablica którą przekazujesz do wyswietl_produkty() zawiera dane jakie powinna zawierać.
colinQ
Zamieniłem to na:
  1. <?php
  2. function wynik_bd_do_tablicy($wynik)
  3. {
  4.  while($row=mysql_fetch_array($wynik))
  5. $tab[]=$row;
  6.  return $tab;
  7. }
  8. ?>


Jak to niby mam sprawdzić?
Cienki1980
Cytat(colinQ @ 28.10.2007, 21:21:41 ) *
Zamieniłem to na:
  1. <?php
  2. function wynik_bd_do_tablicy($wynik)
  3. {
  4.  while($row=mysql_fetch_array($wynik))
  5. $tab[]=$row;
  6.  return $tab;
  7. }
  8. ?>


Jak to niby mam sprawdzić?

No nie no wyświetlić tablicę chyba potrafisz questionmark.gif
W kodzie którym pokazałeś jak wywołujesz funkcję między 9 a 11 linijką wpisz:
  1. <?php
  2. echo "<pre>";print_r($tablica_produktow);echo "</pre>";
  3. ?>

Będziesz wtedy wiedział czy $tablica_produtków zawiera to co myślisz ze powinna.
Jeżeli tak to znaczy, że błąd jest przy wyświetlaniu ... jeżeli nie znaczy, że błąd jest w pobieraniu.
colinQ
już działa, postanowiłem zamiast wczytywać pokaz_kat.php do index'u odpalać to jako nowa stronę

i z
index.php?page=pokaz_kat&nr=1
zrobiło się
pokaz_kat.php?nr=1

żeby nie zakładać nowego tematu

mam taki kod
  1. <?php
  2. if(!isset($_SESSION['koszyk']))
  3. {
  4. $_SESSION['koszyk'] = array();
  5. $_SESSION['produkty'] = 0;
  6. $_SESSION['koszyk'] = 0;
  7. }
  8.  
  9. if(isset($_SESSION['koszyk'][$nowy]))
  10. $_SESSION['koszyk'][$nowy]++;
  11. else
  12. $_SESSION['koszyk'][$nowy] = 1;
  13.  
  14. $_SESSION['calkowita_wartosc'] = oblicz_wartosc($_SESSION['koszyk']);
  15. $_SESSION['produkty'] = oblicz_produkty($_SESSION['koszyk']);
  16. ?>


i wyrzuca ze mam błąd
Warning: Cannot use a scalar value as an array in c:\usr\apache\httpd\html\sklep\pokaz_kosz.php on line 21

21 linia to $_SESSION['koszyk'][$nowy] = 1;
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.