Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> nie widzi rekordu, problem ze sklepem int.
colinQ
post
Post #1





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


A pokaż gdzie wywołujesz funkcję wyswietl_produkty() bo jakoś chyba oślepłem i nie potrafię znaleźć jej wywołania.
Go to the top of the page
+Quote Post
colinQ
post
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


zapomniałem (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post
Cienki1980
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


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. ?>
Go to the top of the page
+Quote Post
colinQ
post
Post #5





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


zamiast czego ja to mam podstawić??
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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. ?>
Go to the top of the page
+Quote Post
Cienki1980
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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ć.
Go to the top of the page
+Quote Post
colinQ
post
Post #8





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


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ć?
Go to the top of the page
+Quote Post
Cienki1980
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
colinQ
post
Post #10





Grupa: Zarejestrowani
Postów: 340
Pomógł: 2
Dołączył: 25.12.2006

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


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;

Ten post edytował colinQ 29.10.2007, 21:30:34
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 19:17