Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zapytanie = fail
Forum PHP.pl > Forum > Przedszkole
meehow18
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. ?>
TomASS
a jak wkleisz w PhpMyAdminie albo MySQL administatorze zapytanie to co zwraca?
meehow18
MySQL zwrócił pusty wynik (zero rekordów). ( Wykonanie zapytania trwało 0.0031 sekund(y) )
TomASS
noto musisz szukać przyczyn w zapytaniu - nie w kodzie - uprość totalnie zapytanie i dokładaj po kolei części
meehow18
Ale w zapytaniu nic nie zmieniałem było na 100% dobre.
nospor
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.
meehow18
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ł.
nospor
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
meehow18
A mógłbyś mi pomóc zrobić te złączenia?
nospor
No ale w czym teraz problem? Zdaje się wszystko zostało wyjaśnione?
meehow18
No, bo nie wiem jakie dodać to złączenie, aby było wszystko dobrze.
nospor
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.
meehow18
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
nospor
No ale podaj jakie są relacje miedzy tabelami bo po nazwach jakie nadales nie idzie zgadnąc...
A przykladowe dane?
meehow18
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 */;
nospor
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ą.
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.