Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Warning: mysql_num_rows() expects parameter 1 to be resource
seedo
post 3.03.2010, 20:15:40
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2010
Skąd: Brzeg

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


Witam. Jestem poczatkujący więc wybaczcie opornosc. Problem polega na tym ze po wciasnieciu na dodaj do koszyka wyswietla sie blad Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\xampp\xampp\htdocs\koszyk_zakupow\funkcje.php on line 42 oraz nie dodano nic do koszyka, ten sam blad wyskakuje przy nie zalogowanym uzytkowniku w line 52

  1. <?php
  2.  
  3. function pf_validate_number($value, $function, $redirect) {
  4. if(isset($value) == TRUE) {
  5. if(is_numeric($value) == FALSE) {
  6. $error = 1;
  7. }
  8.  
  9. if($error == 1) {
  10. header("Location: " . $redirect);
  11. }
  12. else {
  13. $final = $value;
  14. }
  15. }
  16. else {
  17. if($function == 'redirect') {
  18. header("Location: " . $redirect);
  19. }
  20.  
  21. if($function == "value") {
  22. $final = 0;
  23. }
  24. }
  25.  
  26. return $final;
  27. }
  28.  
  29. function showcart()
  30. {
  31.  
  32. if($_SESSION['SESS_ORDERNUM'])
  33. {
  34. if($_SESSION['SESS_LOGGEDIN'])
  35. {
  36. $custsql = "SELECT id, status from zamowienia WHERE id_klienta = " . $_SESSION['SESS_USERID'] . " AND status < 2;";
  37. $custres = mysql_query($custsql);
  38. $custrow = mysql_fetch_assoc($custres);
  39.  
  40. $itemssql = "SELECT produkty.*, pozycje_zamowienia.*, pozycje_zamowienia.id AS itemid FROM produkty, pozycje_zamowienia WHERE pozycje_zamowienia.id_produktu = produkty.id AND id_zamowienia = " . $custrow['id'];
  41. $itemsres = mysql_query($itemssql);
  42. $itemnumrows = mysql_num_rows($itemsres);
  43. }
  44. else
  45. {
  46. $custsql = "SELECT id, status from zamowienia WHERE sesja = '" . session_id() . "' AND status < 2;";
  47. $custres = mysql_query($custsql);
  48. $custrow = mysql_fetch_assoc($custres);
  49.  
  50. $itemssql = "SELECT produkty.*, pozycje_zamowienia.*, pozycje_zamowienia.id AS itemid FROM produkty, pozycje_zamowienia WHERE pozycje_zamowienia.id_produktu = produkty.id AND id_zamowienia = " . $custrow['id'];
  51. $itemsres = mysql_query($itemssql);
  52. $itemnumrows = mysql_num_rows($itemsres);
  53. }
  54. }
  55. else
  56. {
  57. $itemnumrows = 0;
  58. }
  59.  
  60. if($itemnumrows == 0)
  61. {
  62. echo "Nie dodano jeszcze niczego do koszyka.";
  63.  
  64. }
  65. else
  66. {
  67. echo "<table cellpadding='10'>";
  68. echo "<tr>";
  69. echo "<td></td>";
  70. echo "<td><strong>Pozycja</strong></td>";
  71. echo "<td><strong>Iloœć</strong></td>";
  72. echo "<td><strong>Cena jednostkowa</strong></td>";
  73. echo "<td><strong>Cena całkowita</strong></td>";
  74. echo "<td></td>";
  75. echo "</tr>";
  76.  
  77. while($itemsrow = mysql_fetch_assoc($itemsres))
  78. {
  79. $quantitytotal = $itemsrow['cena'] * $itemsrow['ilosc'];
  80. echo "<tr>";
  81.  
  82. if(empty($itemsrow['obraz'])) {
  83. echo "<td><img src='./obrazy/brak_obrazu.jpg' width='50' alt='" . $itemsrow['nazwa'] . "'></td>";
  84. }
  85. else {
  86. echo "<td><img src='./obrazy/" . $itemsrow['obraz'] . "' width='50' alt='" . $itemsrow['nazwa'] . "'></td>";
  87. }
  88.  
  89. // echo "<td><img src='./obrazy/" . $itemsrow['obraz'] . ".jpg' alt='" . $itemsrow['nazwa'] . "' width='50'></td>";
  90. echo "<td>" . $itemsrow['nazwa'] . "</td>";
  91. echo "<td>" . $itemsrow['ilosc'] . "</td>";
  92. echo "<td><strong>&pound;" . sprintf('%.2f', $itemsrow['cena']) . "</strong></td>";
  93. echo "<td><strong>&pound;" . sprintf('%.2f', $quantitytotal) . "</strong></td>";
  94. echo "<td>[<a href='" . $config_basedir . "usuwanie.php?id=" . $itemsrow['itemid'] . "'>X</a>]</td>";
  95. echo "</tr>";
  96.  
  97. $suma = $suma + $quantitytotal;
  98. $totalsql = "UPDATE zamowienia SET suma = " . $suma . " WHERE id = " . $_SESSION['SESS_ORDERNUM'];
  99. $totalres = mysql_query($totalsql);
  100. }
  101.  
  102. echo "<tr>";
  103. echo "<td></td>";
  104. echo "<td></td>";
  105. echo "<td></td>";
  106. echo "<td>SUMA</td>";
  107. echo "<td><strong>&pound;" . sprintf('%.2f', $suma) . "</strong></td>";
  108. echo "<td></td>";
  109. echo "</tr>";
  110.  
  111. echo "</table>";
  112.  
  113. }
  114. }
  115.  
  116.  
  117. ?>


Ten post edytował seedo 3.03.2010, 20:31:32
Go to the top of the page
+Quote Post
Fifi209
post 3.03.2010, 20:16:33
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Wrzuć to w tagi php bo się czytać nie da...


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
mortus
post 3.03.2010, 20:39:20
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Takie ostrzeżenie oznacza, że zapytanie nie zwraca wyników. Przyczyny mogą być dwie:
1. zapytanie zostało źle skonstruowane,
2. zmienna przekazana do zapytania nie jest taka, jakiej byśmy się spodziewali.
Wrzuć print_r($custrow['id']) przed
  1. $itemssql = "SELECT produkty.*, pozycje_zamowienia.*, pozycje_zamowienia.id AS itemid FROM produkty, pozycje_zamowienia WHERE pozycje_zamowienia.id_produktu = produkty.id AND id_zamowienia = " . $custrow['id'];

a zobaczysz, czy id, jest prawidłowe.

Ten post edytował mortus 3.03.2010, 20:40:44
Go to the top of the page
+Quote Post
seedo
post 3.03.2010, 20:49:29
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2010
Skąd: Brzeg

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


Wyswietla Parse error: syntax error, unexpected T_VARIABLE in D:\xampp\xampp\htdocs\koszyk_zakupow\funkcje.php on line 40 domyslam sie ze to id nie istnieje?

Przegladanalem wlasnie tabele sql i nie mam tam w tabeli zamowienia id_zamowienia tylko samo id. Tylko jak dac zapytanie w sql zeby chodzilo o id z tab zamowienia

Ten post edytował seedo 3.03.2010, 20:54:22
Go to the top of the page
+Quote Post
mortus
post 3.03.2010, 21:00:24
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


To wydrukuj tak: print_r($custrow); i zobaczysz, co zwróci. Spróbuj zarówno dla niezalogowanego, jak i zalogowanego użytkownika. Wyniki wklej tutaj.
Go to the top of the page
+Quote Post
nospor
post 3.03.2010, 21:02:55
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
domyslam sie ze to id nie istnieje?
Nie, PARSE ERROR mowi, ze masz spapraną skladnie php. skrypt nie dochodzi nawet do analizy wartosci zmiennych bo wywala sie na analizie skladni smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
seedo
post 3.03.2010, 21:07:28
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2010
Skąd: Brzeg

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


dla zalogowanego
Array ( [id] => 6 [status] => 0 )
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\xampp\xampp\htdocs\koszyk_zakupow\funkcje.php on line 42
Nie dodano jeszcze niczego do koszyka

dla nie zalogowanego
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\xampp\xampp\htdocs\koszyk_zakupow\funkcje.php on line 52
Nie dodano jeszcze niczego do koszyka.
Go to the top of the page
+Quote Post
piotrooo89
post 3.03.2010, 21:09:14
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




wyraźnie masz napisane że masz błąd w zapytaniu SQL. wspominał już o tym ~nospor. popatrz dokładnie na cudzysłowy.


--------------------
Go to the top of the page
+Quote Post
nospor
post 3.03.2010, 21:11:47
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




każde $cos = mysql_query($sql);
zamien na:
$cos = mysql_query($sql) or die('zapytanie :'.$sql.' blad:'.mysql_error());

i bedziesz mial wszystko jak na dloni.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
seedo
post 3.03.2010, 21:32:12
Post #10





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2010
Skąd: Brzeg

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


zapytanie : blad:Unknown column 'id_zamowienia' in 'where clause'

w tabeli zamowienia nie mam id_zamowienia tylko samo id ale jak sformulowac to w sql bo samo id albo zamowienia.id nic nie daje
Go to the top of the page
+Quote Post
piotrooo89
post 3.03.2010, 21:36:10
Post #11


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




masz wyraźnie napisane co i jak... może musisz ustawić w WHERE pozycje_zamowienia.id=$custrow['id']? albo odwołanie do innej tabeli.


--------------------
Go to the top of the page
+Quote Post
mortus
post 3.03.2010, 21:59:10
Post #12





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Wydaje mi się, że tabela pozycje_zamowienia ma łączyć tabele produkty z tabelą zamówienia. Jeżeli tak, to w tabeli pozycje_zamowienia powinna się znaleźć kolumna, w której odwołamy się do konkretnego zamówienia. Zrób dump-a tabeli i wklej tutaj, to zobaczymy, czy taka kolumna jest?
Go to the top of the page
+Quote Post
seedo
post 3.03.2010, 22:35:50
Post #13





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2010
Skąd: Brzeg

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



--
-- Struktura tabeli dla `zamowienia`
--

CREATE TABLE IF NOT EXISTS `zamowienia` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_klienta` int(11) NOT NULL,
`zarejestrowany` int(11) NOT NULL,
`id_adresu_przesylki` int(11) NOT NULL,
`metoda_platnosci` int(11) NOT NULL,
`data` datetime NOT NULL,
`status` tinyint(4) NOT NULL,
`sesja` varchar(50) NOT NULL,
`suma` float NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Zrzut danych tabeli `zamowienia`
--

INSERT INTO `zamowienia` (`id`, `id_klienta`, `zarejestrowany`, `id_adresu_przesylki`, `metoda_platnosci`, `data`, `status`, `sesja`, `suma`) VALUES
(1, 0, 0, 0, 0, '2010-03-02 20:29:29', 0, 'ot39rk7q3c79cjks7kvr7u2d33', 0),
(2, 2, 1, 0, 2, '2010-03-02 20:32:52', 2, '', 0),
(3, 0, 0, 0, 0, '2010-03-02 21:12:31', 0, 'i2ffqpnsgksapl35pg7sqjk1s5', 0),
(4, 1, 1, 0, 2, '2010-03-03 12:29:48', 2, '', 0),
(5, 1, 1, 0, 0, '2010-03-03 14:49:50', 0, '', 0),
(6, 2, 1, 0, 0, '2010-03-03 19:38:13', 0, '', 0);



-- Struktura tabeli dla `pozycje_zamowienia`
--

CREATE TABLE IF NOT EXISTS `pozycje_zamowienia` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_klienta` int(11) NOT NULL,
`id_produktu` int(11) NOT NULL,
`ilosc` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Zrzut danych tabeli `pozycje_zamowienia`
--

INSERT INTO `pozycje_zamowienia` (`id`, `id_klienta`, `id_produktu`, `ilosc`) VALUES
(1, 1, 1, 20),
(2, 1, 1, 20);



Ten post edytował seedo 3.03.2010, 22:38:29
Go to the top of the page
+Quote Post
piotrooo89
post 3.03.2010, 22:40:07
Post #14


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




to jeszcze napisz co chcesz otrzymać?


--------------------
Go to the top of the page
+Quote Post
seedo
post 3.03.2010, 22:44:15
Post #15





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2010
Skąd: Brzeg

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


id z tabeli zamowienia
Go to the top of the page
+Quote Post
piotrooo89
post 3.03.2010, 22:45:26
Post #16


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




no to zamowienia.id.


--------------------
Go to the top of the page
+Quote Post
seedo
post 3.03.2010, 22:49:18
Post #17





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2010
Skąd: Brzeg

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


f**k dalej ten shit wyrzuca
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\xampp\xampp\htdocs\koszyk_zakupow\funkcje.php on line 42
zapytanie : blad:Unknown column 'zamowienia.id' in 'where clause'
Go to the top of the page
+Quote Post
piotrooo89
post 3.03.2010, 22:50:40
Post #18


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




pokaż zapytanie. a masz wogóle tabele zamowienie w FROM?


--------------------
Go to the top of the page
+Quote Post
mortus
post 3.03.2010, 22:51:44
Post #19





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Klient składa zamówienie (uzupełniane są dane w tabeli zamowienia) i w tym zamówieniu prosi o określony produkt w danej ilości (uzupełniane są dane w tabeli pozycje_zamowienia). Chodzi o to, że dane z tabeli pozycje_zamowienia powinny się w jakiś sposób odnosić nie do klienta, a do samego zamówienia. Po co zatem w tabeli pozycje_zamowienia pole id_klienta, no i gdzie jest pole łączące z tabelą zamowienia?
Go to the top of the page
+Quote Post
seedo
post 3.03.2010, 22:54:54
Post #20





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 21.02.2010
Skąd: Brzeg

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


Rzeczywiscie nie bylo zamowienia w FROM, wielkie dzieki

Ten post edytował seedo 3.03.2010, 22:57:15
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 17:18