Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyświetlanie danych z bazy, Jak wyświetlić dane bez pętli while
toperko
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 8.08.2010

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


CODE
mysql_connect ("localhost", "root", "") or
die ("Blad podczas polaczenia z MySQL. Jesli mozesz to poinformuj o tym administracje. Sprobuj takze odswiezyc strone.");
mysql_select_db ("base") or
die ("Blad podczas wybierania bazy. Jesli mozesz to poinformuj o tym administracje. Sprobuj takze odswiezyc strone.");

$tresc_zapytania = 'SELECT `ID`, `title`, `txt_present`, `img_smal`, `img` FROM `post` ORDER BY `ID` LIMIT 5';
$zapytanie = mysql_query($tresc_zapytania);


Mam już coś takiego lecz problem pojawił się przy próbie wyświetlenia tych danych bo każde z nich ma zostać wyświetlone w inny sposób np pierwsze ma być drukiem pogrubionym a inne mniejszym wiec nasuwa się pytanie jak wyświetlić dane z tego zapytanie nie używając jakiejkolwiek pętli ?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
thomson89
post
Post #2





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Według mnie - nie da się. Ograniczanie użycia pętli, przy obróbce danych z bazy jest według mnie - śmieszne.


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
skarabe.pl
post
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 49
Dołączył: 29.07.2010

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


A czy sposób wyświetlenia danego elementu zależy od jego "miejsca w szeregu" (kolejności), czy od czegoś innego (wartości w którejś kolumnie)? Jeśli to pierwsze, to można tak (posłużę się przykładem z newsami - najpierw jest jeden hot, potem 3 zwykłe z długim wstępem i obrazkiem, a potem, pozostałe, tylko tytuł + link):
  1. $res = mysql_query('SELECT id, data, tytul, wstep, obrazek FROM news ORDER BY data DESC LIMIT 10');
  2. $hot = mysql_fetch_assoc($res);
  3. if ($hot) {
  4. echo '
  5. <div class="news hot">
  6. <strong>', $hot['tytul'], '</strong>
  7. <span class="date">', $hot['data'], '</span>
  8. <p class="content"><img src="', $hot['obrazek'], '" />', $hot['content'], '</p>
  9. <a href="czytaj_wiecej.php?id=', $hot['id'], '">Czytaj więcej</a>
  10. </div>';
  11. }
  12. $i = 0;
  13. while ($normal = mysql_fetch_assoc($res) && (++$i <= 3)) {
  14. echo '
  15. <div class="news">', $normal['tytul'], '
  16. <span class="date">', $normal['data'], '</span>
  17. <p class="content"><img src="', $normal['obrazek'], '" />', $normal['content'], '</p>
  18. <a href="czytaj_wiecej.php?id=', $normal['id'], '">Czytaj więcej</a>
  19. </div>';
  20. }
  21.  
  22. while ($small = mysql_fetch_assoc($res)) {
  23. echo '
  24. <a class="small_news" href="czytaj_wiecej.php?id=', $small['id'], '">', $small['tytul'], '</a>
  25. <span class="date">', $small['data'], '</span>';
  26. }
Go to the top of the page
+Quote Post
muk4
post
Post #4





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


Jeśli wiesz ile jest pobranych rekordów (5 w tym przpadku) musisz wywołać np. mysql_fetch_assoc 5 razy. Po pobraniu rekordu wewnętrzny wskaźnik przesuwa się do kolejnej porcji danych:
  1. $result = mysql_query($zapytanie);
  2. $dane1 = mysql_fetch_assoc($result);
  3. var_dump($dane1); //wyświetli 1 rekord
  4. $dane2 = mysql_fetch_assoc($result);
  5. var_dump($dane2); //wyświetli 2 rekord
Go to the top of the page
+Quote Post
toperko
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 8.08.2010

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


  1. mysql_connect ("localhost", "root", "") or
  2. die ("Blad podczas polaczenia z MySQL. Jesli mozesz to poinformuj o tym administracje. Sprobuj takze odswiezyc strone.");
  3. mysql_select_db ("base") or
  4. die ("Blad podczas wybierania bazy. Jesli mozesz to poinformuj o tym administracje. Sprobuj takze odswiezyc strone.");
  5.  
  6. $res = mysql_query('SELECT `ID`, `title`, `txt_present`, `img_smal`, `img` FROM `post` ORDER BY `ID` LIMIT 5');
  7. $hot = mysql_fetch_assoc($res);
  8. if ($hot) {
  9. echo '1 ', $hot['title'], '1';
  10. }
  11. $i = 0;
  12. while ($normal = mysql_fetch_assoc($res) && (++$i <= 3)) {
  13. echo '2', $normal['title'], '2';
  14. }
  15.  
  16. while ($small = mysql_fetch_assoc($res)) {
  17. echo '3', $small['title'], '3';
  18. }


Średnio rozumiem zasadę działania tego wiec próbowałem wstawić jak najprościej sobie to w plik i zobaczyć co sie stanie lecz za każdym razem mam takie błędy

CODE
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\WebServ\httpd\rotator\index.php on line 23
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\WebServ\httpd\rotator\index.php on line 28
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in E:\WebServ\httpd\rotator\index.php on line 32


może ktoś będzie wiedział co robię źle bo sposób skarabe.pl-a to chyba jedyny sposób.




dobra znalazłem juz bład w zapytaniu i po problemie

Ten post edytował toperko 10.08.2010, 00:29:50
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 Aktualny czas: 19.08.2025 - 13:21