Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][SQL][PHP]Pętla WHILE
Forum PHP.pl > Forum > Przedszkole
xardes
Witam wszystkich jestem nowy na tym forum, mam nadzieję że nie pomyliłem działów. Pisze małą stronkę a konkretnie system wyświetlania newsów. Mam taki kod:
  1. <?php
  2. $sql = "SELECT wydarzenia.*, uzytkownicy.login, uzytkownicy.id FROM wydarzenia, uzytkownicy
  3. WHERE wydarzenia.id_uzytkownika = uzytkownicy.id
  4. ORDER BY wydarzenia.id;";
  5.  
  6. $result = mysql_query($sql);
  7. $row = mysql_fetch_assoc($result); //umiesc w tablicy row
  8.  
  9.  
  10. while($row1 = mysql_fetch_assoc($result)){
  11.  
  12. if(empty($row1['adres_miniaturki'])) { $row1['adres_miniaturki'] = "miniaturki/brak_foto.jpg";}
  13.  
  14. echo '<p><div class="sk_news"><div class="miniaturka"><img src="' . $row1['adres_miniaturki'] . '" alt="' . $row1['tytul'] . '" title="' . $row1['tytul'] . '"></div>';
  15.  
  16. echo '<div class="tytul">'. $row1['tytul'] . '</div>';
  17.  
  18. echo '<div class="data">Data Wydarzenia: ' . $row1['data_wydarzenia'] . '</div>';
  19.  
  20. echo '<div class="miejsce">Miejsce wydarzenia: ' .$row1['miejsce'] . '</div>';
  21.  
  22. echo '<div class="dodane">Dodane: ' .$row1['data_dodania']. ' Przez: '. $row1['login'] . ' <a href="wyswietlanie_wpisu?id=' . $row1['id'] . '" title="Czytaj więcej">wiecej...</a></div></div></p>';
  23. }

I zawsze wyświetla mi wszystkie newsy które są w bazie danych - 1.
Jak temu zaradzić?
(od razu mówię że przeszukałem trochę w internecie i nie znalazłem odpowiedzi)
patryczakowy
Sprawdź co znajduje się w bazie danych założę się że ten jeden news nie spełnia warunku WHERE po za tym lepiej chyba będziesz jak przerobisz to zapytanie na
"LEFT JOIN"
xardes
Bazę danych sprawdzałem z 8 razy wszystko jest dobrze a potwierdza to fakt że jak wklepuje w phpMyadmin to zapytanie które mam z kodzie wyświetlone zostaje tyle rekordów ile trzeba. Co do LEFT JOIN też próbowałem ale działa tak samo jak w przypadku mojego zapytania czyli wyświetle zawsze jeden rekord mniej. Dla potwierdzenia zamieszczam zrzut bazy danych:
CODE
  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: 11 Mar 2011, 15:27
  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: `obecnikowe`
  20. --
  21.  
  22. -- --------------------------------------------------------
  23.  
  24. --
  25. -- Struktura tabeli dla `k_gosci`
  26. --
  27.  
  28. CREATE TABLE IF NOT EXISTS `k_gosci` (
  29. `id` smallint(6) NOT NULL AUTO_INCREMENT,
  30. `data_wpisu` date NOT NULL,
  31. `nick` varchar(25) NOT NULL,
  32. `wpis` text NOT NULL,
  33. PRIMARY KEY (`id`)
  34. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  35.  
  36. --
  37. -- Zrzut danych tabeli `k_gosci`
  38. --
  39.  
  40.  
  41. -- --------------------------------------------------------
  42.  
  43. --
  44. -- Struktura tabeli dla `uzytkownicy`
  45. --
  46.  
  47. CREATE TABLE IF NOT EXISTS `uzytkownicy` (
  48. `id` smallint(6) NOT NULL AUTO_INCREMENT,
  49. `login` varchar(25) NOT NULL,
  50. `haslo` varchar(30) NOT NULL,
  51. `imie` varchar(30) NOT NULL,
  52. `nazwisko` varchar(40) NOT NULL,
  53. `data_ur` date NOT NULL,
  54. `mail` varchar(30) NOT NULL,
  55. `gadu` varchar(15) NOT NULL,
  56. `kom` varchar(15) NOT NULL,
  57. `skype` varchar(30) NOT NULL,
  58. `sciezka_avatara` varchar(200) NOT NULL,
  59. `poziom_d` smallint(6) NOT NULL,
  60. PRIMARY KEY (`id`)
  61. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
  62.  
  63. --
  64. -- Zrzut danych tabeli `uzytkownicy`
  65. --
  66.  
  67. INSERT INTO `uzytkownicy` (`id`, `login`, `haslo`, `imie`, `nazwisko`, `data_ur`, `mail`, `gadu`, `kom`, `skype`, `sciezka_avatara`, `poziom_d`) VALUES
  68. (1, 'xardes', 'kokokokoko', 'John', 'Kowalski', '1994-07-07', 'xardes@interia.eu', '957845', '645786259', '', 'avatary/xardes.jpg', 3),
  69. (2, 'bunia', 'bunia2', 'Basia', 'Nowak', '1988-03-09', '', '', '', '', '', 2);
  70.  
  71. -- --------------------------------------------------------
  72.  
  73. --
  74. -- Struktura tabeli dla `wydarzenia`
  75. --
  76.  
  77. CREATE TABLE IF NOT EXISTS `wydarzenia` (
  78. `id` smallint(6) NOT NULL AUTO_INCREMENT,
  79. `id_uzytkownika` smallint(6) NOT NULL,
  80. `widocznosc` int(11) NOT NULL,
  81. `miejsce` varchar(30) NOT NULL,
  82. `wpis` text NOT NULL,
  83. `data_wydarzenia` date NOT NULL,
  84. `data_dodania` datetime NOT NULL,
  85. `tytul` varchar(70) NOT NULL,
  86. `adres_miniaturki` varchar(200) NOT NULL,
  87. PRIMARY KEY (`id`)
  88. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
  89.  
  90. --
  91. -- Zrzut danych tabeli `wydarzenia`
  92. --
  93.  
  94. INSERT INTO `wydarzenia` (`id`, `id_uzytkownika`, `widocznosc`, `miejsce`, `wpis`, `data_wydarzenia`, `data_dodania`, `tytul`, `adres_miniaturki`) VALUES
  95. (8, 1, 1, 'asdasdasd', 'sadasdf', '2011-03-05', '2011-03-11 21:10:21', 'sdad', ''),
  96. (9, 1, 1, 'ads', 'adsasd', '2011-03-16', '2011-03-16 21:10:10', 'das', '');
  97.  
  98. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  99. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  100. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


Proszę o pomoc i odpowiedź dlaczego tak się dzieję. Mi wydaję się że jest błąd albo w funkcji while albo błąd z zapytaniami mysql.
Noidea
Ten twój zagubiony news siedzi w zmiennej $row (7 linijka skryptu). Nigdzie go nie wyświetlasz, więc go na stronie nie widać.
xardes
Dokładnie tak smile.gif
Po prostu... 6h szukałem błędu. Przepraszam za moją głupotę, Temat do zamknięcia i dziękuję bardzo za pomoc.
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.