Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Zapytanie = fail
meehow18
post 19.09.2010, 11:37:13
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 10.01.2010

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


Witam, mam trochę dziwny problem, wszystko mi działało do czasu ale nagle wszystko padło i wyświetla, że nie ma żadnego przedmiotu w bazie, a są nawet 5...
Kod przy wyświetlaniu zmiennych jest trochę porąbany bo przechodzi modernizacje;/
Proszę o pomoc

  1. <?php
  2. $result = mysql_query("
  3. SELECT sklep.*, item.*, opcje.nazwa_opcji, GROUP_CONCAT(opcje.nazwa_opcji) as nazwy_opcji
  4. FROM sklep
  5. INNER JOIN item ON item.idPrzedmiotu = sklep.id
  6. INNER JOIN opcje ON opcje.id = item.nazwaPola
  7. GROUP BY sklep.ID
  8. ") or die('BŁĄD:'.mysql_error());
  9.  
  10. if(mysql_num_rows($result) > 0) {
  11.  
  12.  
  13.  
  14. echo "<table cellpadding=\"2\" border=1>";
  15. while($r = mysql_fetch_array($result)) {
  16. ?>
  17. <font color=red><b><big>
  18. <fieldset><?php echo $r['nazwa'] . $r['opt1'] . $r['opt2']; ?></fieldset></big></b></font>
  19. <table width="124" border="0">
  20. <tr>
  21. <td><img src="img/<?php echo $r['img'];?>"></td>
  22. <td><?php echo $r['nazwy_opcji'];?></td>
  23. </tr>
  24. </table>
  25.  
  26. <?php
  27.  
  28. echo "<tr>";
  29. echo "<td>".$r['nazwa']."</td>";
  30. ?>
  31.  
  32. <td><img src="img/<?php echo $r['img'];?>"></td>
  33. <?php
  34. echo "<td>".$r['nazwy_opcji']."</td>";
  35.  
  36. echo "<td>"."<b>Cena:</b>".$r['cred']."</td>";
  37.  
  38. echo "<td> ";
  39.  
  40. ?>
  41.  
  42. <a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=kup&id=<?php echo $r['idPrzedmiotu']; ?>">KUP</a>
  43.  
  44. </td>
  45. <?php
  46. echo "</tr>";
  47. echo "</table>";
  48. }
  49.  
  50. }
  51. else {
  52. echo '<b>Nie ma żadnych przedmiotów</b>';
  53. }
  54.  
  55. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
TomASS
post 19.09.2010, 12:04:35
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


a jak wkleisz w PhpMyAdminie albo MySQL administatorze zapytanie to co zwraca?


--------------------
Go to the top of the page
+Quote Post
meehow18
post 19.09.2010, 12:19:27
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 10.01.2010

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


MySQL zwrócił pusty wynik (zero rekordów). ( Wykonanie zapytania trwało 0.0031 sekund(y) )
Go to the top of the page
+Quote Post
TomASS
post 19.09.2010, 12:24:28
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


noto musisz szukać przyczyn w zapytaniu - nie w kodzie - uprość totalnie zapytanie i dokładaj po kolei części


--------------------
Go to the top of the page
+Quote Post
meehow18
post 19.09.2010, 12:35:50
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 10.01.2010

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


Ale w zapytaniu nic nie zmieniałem było na 100% dobre.
Go to the top of the page
+Quote Post
nospor
post 19.09.2010, 12:37:17
Post #6





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




No ale moze skasowaly ci się rekordy.
Uzywasz INNER JOIN a to złączenie wymaga, by wszystko bylo. Wystarczy ze na tej sciezce zniknal jakis rekord i juz nic nie dostaniesz. zamiast INNER JOIN daj LEFT JOIN i zobacz co sie stanie.
Powód edycji: [nospor]:


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

"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
meehow18
post 20.09.2010, 14:41:14
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 10.01.2010

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


Cytat(nospor @ 19.09.2010, 13:37:17 ) *
No ale moze skasowaly ci się rekordy.
Uzywasz INNER JOIN a to złączenie wymaga, by wszystko bylo. Wystarczy ze na tej sciezce zniknal jakis rekord i juz nic nie dostaniesz. zamiast INNER JOIN daj LEFT JOIN i zobacz co sie stanie.



no, działa ale nie zauważyłem, że w ogóle nie wyświetla opcji i parametr ID w linku wygasł.

Ten post edytował meehow18 20.09.2010, 14:41:41
Go to the top of the page
+Quote Post
nospor
post 21.09.2010, 09:55:09
Post #8





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




Cytat
że w ogóle nie wyświetla opcji i parametr ID w linku wygasł.
No tak, dlatego ze nia masz rekordów dla danych złączen. Dlatego wlasnie INNER JOIN czy nic nie wyswietlal, bo jak nie ma jakiegoś złączenia, to iNNER JOIN nic nie zwraca.
Natomiast LEFT JOIN jak nie ma jakiegoś złączenia to wstawia null do rekordu a rekordy główne zwraca 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
meehow18
post 23.09.2010, 11:44:46
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 10.01.2010

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


A mógłbyś mi pomóc zrobić te złączenia?
Go to the top of the page
+Quote Post
nospor
post 23.09.2010, 11:58:29
Post #10





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




No ale w czym teraz problem? Zdaje się wszystko zostało wyjaśnione?


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

"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
meehow18
post 23.09.2010, 12:01:56
Post #11





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 10.01.2010

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


No, bo nie wiem jakie dodać to złączenie, aby było wszystko dobrze.
Go to the top of the page
+Quote Post
nospor
post 23.09.2010, 12:05:07
Post #12





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




No jesli nie masz wlasciwych danych to zadne złączenie ci nie pomoże smile.gif

POkaz strukture tabel, pokaz dane, pokaz co chcesz uzyskac a co uzyskujesz.


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

"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
meehow18
post 23.09.2010, 12:14:35
Post #13





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 10.01.2010

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


Tabela `sklep`
ID, cred, img, nazwa, opt1, opt2
Tabela `item`
id, idPrzedmiotu, nazwaPola
Table `opcje`
ID, nazwa _opcji


To tak, chce wyświetlić pole nazwa_opcji tylko tak,
sklep.ID = idPrzedmiotu a następnie item.nazwaPola=nazwa_opcji

jeśli bedzie tutaj wszystko okey, to może Ci potem pokaże kod dodący przedmiot do bazy

Ten post edytował meehow18 23.09.2010, 12:16:11
Go to the top of the page
+Quote Post
nospor
post 23.09.2010, 12:16:51
Post #14





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




No ale podaj jakie są relacje miedzy tabelami bo po nazwach jakie nadales nie idzie zgadnąc...
A przykladowe dane?


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

"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
meehow18
post 23.09.2010, 12:18:30
Post #15





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 10.01.2010

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


może tak bd lepiej
  1. -- phpMyAdmin SQL Dump
  2. -- version 3.2.4
  3. -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
  4. --
  5. -- Host: localhost
  6. -- Czas wygenerowania: 23 Wrz 2010, 13:18
  7. -- Wersja serwera: 5.1.41
  8. -- Wersja PHP: 5.3.1
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12.  
  13. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  14. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  15. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  16. /*!40101 SET NAMES utf8 */;
  17.  
  18. --
  19. -- Baza danych: `shop`
  20. --
  21.  
  22. -- --------------------------------------------------------
  23.  
  24. --
  25. -- Struktura tabeli dla `item`
  26. --
  27.  
  28. CREATE TABLE IF NOT EXISTS `item` (
  29. `id` int(11) NOT NULL AUTO_INCREMENT,
  30. `idPrzedmiotu` int(11) NOT NULL,
  31. `nazwaPola` int(11) NOT NULL,
  32. PRIMARY KEY (`id`)
  33. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
  34.  
  35. --
  36. -- Zrzut danych tabeli `item`
  37. --
  38.  
  39. INSERT INTO `item` (`id`, `idPrzedmiotu`, `nazwaPola`) VALUES
  40. (12, 126, 31);
  41.  
  42. -- --------------------------------------------------------
  43.  
  44. --
  45. -- Struktura tabeli dla `newsy`
  46. --
  47.  
  48. CREATE TABLE IF NOT EXISTS `newsy` (
  49. `Id.autor` int(11) NOT NULL AUTO_INCREMENT,
  50. `tresc` text NOT NULL,
  51. `data` date NOT NULL,
  52. PRIMARY KEY (`Id.autor`)
  53. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  54.  
  55. --
  56. -- Zrzut danych tabeli `newsy`
  57. --
  58.  
  59.  
  60. -- --------------------------------------------------------
  61.  
  62. --
  63. -- Struktura tabeli dla `opcje`
  64. --
  65.  
  66. CREATE TABLE IF NOT EXISTS `opcje` (
  67. `ID` int(11) NOT NULL AUTO_INCREMENT,
  68. `nazwa_opcji` text NOT NULL,
  69. PRIMARY KEY (`ID`)
  70. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=32 ;
  71.  
  72. --
  73. -- Zrzut danych tabeli `opcje`
  74. --
  75.  
  76. INSERT INTO `opcje` (`ID`, `nazwa_opcji`) VALUES
  77. (31, 'hp 5%'),
  78. (30, 'Demage'),
  79. (29, 'Reflect');
  80.  
  81. -- --------------------------------------------------------
  82.  
  83. --
  84. -- Struktura tabeli dla `sklep`
  85. --
  86.  
  87. CREATE TABLE IF NOT EXISTS `sklep` (
  88. `ID` int(11) NOT NULL AUTO_INCREMENT,
  89. `cred` text NOT NULL,
  90. `img` text NOT NULL,
  91. `nazwa` varchar(100) NOT NULL,
  92. `opt1` varchar(11) NOT NULL,
  93. `opt2` varchar(11) NOT NULL,
  94. PRIMARY KEY (`ID`)
  95. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=117 ;
  96.  
  97. --
  98. -- Zrzut danych tabeli `sklep`
  99. --
  100.  
  101. INSERT INTO `sklep` (`ID`, `cred`, `img`, `nazwa`, `opt1`, `opt2`) VALUES
  102. (116, '25', 'dragonknight.jpg', 'Great', '+2', '+20');
  103.  
  104. -- --------------------------------------------------------
  105.  
  106. --
  107. -- Struktura tabeli dla `sms`
  108. --
  109.  
  110. CREATE TABLE IF NOT EXISTS `sms` (
  111. `id` int(11) NOT NULL AUTO_INCREMENT,
  112. `tresc_sms` text NOT NULL,
  113. `numer_sms` text NOT NULL,
  114. `koszt_sms` text NOT NULL,
  115. PRIMARY KEY (`id`)
  116. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
  117.  
  118. --
  119. -- Zrzut danych tabeli `sms`
  120. --
  121.  
  122. INSERT INTO `sms` (`id`, `tresc_sms`, `numer_sms`, `koszt_sms`) VALUES
  123. (1, 'rybkafdsadfsd', '7021', '12z?'),
  124. (2, 'sadasdas', '70asda21', '5zk');
  125.  
  126. -- --------------------------------------------------------
  127.  
  128. --
  129. -- Struktura tabeli dla `sms_kod`
  130. --
  131.  
  132. CREATE TABLE IF NOT EXISTS `sms_kod` (
  133. `id` int(11) NOT NULL AUTO_INCREMENT,
  134. `numer` text NOT NULL,
  135. `kod` text NOT NULL,
  136. `uzyty` int(11) NOT NULL,
  137. PRIMARY KEY (`id`)
  138. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
  139.  
  140. --
  141. -- Zrzut danych tabeli `sms_kod`
  142. --
  143.  
  144. INSERT INTO `sms_kod` (`id`, `numer`, `kod`, `uzyty`) VALUES
  145. (1, '7024', 'wx1251', 0),
  146. (2, '7025', 'xrkdg41', 0),
  147. (3, '7024', 'wx3125', 0),
  148. (4, '7025', 'asdasdasdasd', 0),
  149. (5, '7024', 'asdsad', 0);
  150.  
  151. -- --------------------------------------------------------
  152.  
  153. --
  154. -- Struktura tabeli dla `user`
  155. --
  156.  
  157. CREATE TABLE IF NOT EXISTS `user` (
  158. `ID` int(11) NOT NULL AUTO_INCREMENT,
  159. `credit` text NOT NULL,
  160. PRIMARY KEY (`ID`)
  161. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  162.  
  163. --
  164. -- Zrzut danych tabeli `user`
  165. --
  166.  
  167.  
  168. -- --------------------------------------------------------
  169.  
  170. --
  171. -- Struktura tabeli dla `users`
  172. --
  173.  
  174. CREATE TABLE IF NOT EXISTS `users` (
  175. `u_id` int(11) NOT NULL AUTO_INCREMENT,
  176. `u_name` varchar(32) NOT NULL DEFAULT '',
  177. `u_password` varchar(40) NOT NULL DEFAULT '',
  178. `u_email` varchar(64) NOT NULL DEFAULT '',
  179. `u_activation_key` varchar(40) NOT NULL DEFAULT '',
  180. `u_active` int(1) NOT NULL DEFAULT '0',
  181. `cred` char(255) NOT NULL,
  182. `login_gra` varchar(32) NOT NULL,
  183. PRIMARY KEY (`u_id`)
  184. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
  185.  
  186. --
  187. -- Zrzut danych tabeli `users`
  188. --
  189.  
  190. INSERT INTO `users` (`u_id`, `u_name`, `u_password`, `u_email`, `u_activation_key`, `u_active`, `cred`, `login_gra`) VALUES
  191. (1, 'rybenia', '1f6cdd7f59e179e59b12142ee15c46517be654b2', 'meehow17@gmail.com', 'z9y7itdfmk8we1hs2gjbnvo4uc56qrpx3la0', 1, '30', 'asdf');
  192.  
  193. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  194. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  195. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Go to the top of the page
+Quote Post
nospor
post 23.09.2010, 12:22:13
Post #16





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




Super, wszystko ładnie pięknie, tylko napisz mi proszę jeszcze, jakie zachodzą relacje miedzy tymi trzema tabelami.
Niestety w bazie relacji nie zalozyles i podane przez Ciebie zapytania nie wyjasniają mi tych relacji więc proszę jeszcze o wersje opisową.


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

"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

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: 4.07.2025 - 21:26