Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyśwetlenie danych z bazy...
Forum PHP.pl > Forum > Przedszkole
vieri_pl
Witam! Mam nastepujący problem... Tworze skrypt newsów ale mam problem z ich wyświetlaniem chce aby wyswietlały sie one tak:

Czwartek, 26.11.2005

Tytul: sdfsfsd :: Dodał: sadfsf

sdfkjsd fjsdbfedf

Środa, 25.11.2005

Tytul: sdfsfsd :: Dodał: sadfsf

sdfkjsd fjsdbfedf


Jak wykonać zapytanie i czy powinenem dodac jakieś pole data by otrzymać powyższy efekt questionmark.gif Chodzi mi o takie wyświetlanie np. jest czwartejk wyświetlają sie zczwartku itd itd Jak powinno wyglądać zapytanie questionmark.gif?
nospor
robisz zapytanie ktore wyswietla ci wszystko i date i rekordy. posortuj tylko w zapytaniu po dacie. nastepnie w php, jesli dana date pojawia sie pierwszy raz to ją wysweitlasz, a jesli nie to nie
vieri_pl
No wyświetlam newsy:

  1. <?php
  2.  
  3. $result_newsy = sql("select * from newsy order by id DESC LIMIT $na_start,$na_stronie;");
  4. // Jeśli nie ma newsów w bazie, to wyświetla się odpowiedni komunikat //
  5. if(mysql_num_rows($result_newsy) == 0) {
  6. komunikat(2);
  7. }
  8. else {
  9. while($row_newsy = mysql_fetch_row($result_newsy)) {
  10. <div style="align: center;">$row_newsy[4]</div> <-- tu wyswietla date Czwartek, 16.09.2005
  11.  
  12. TU WYSWIETLAM RESZTE...
  13.  
  14. );
  15. }
  16.  
  17. ?>



No ale newsy wyświetlają sie tak:

Czwartek, 16.09.2005

Sadjksad jsahdjhasdhsadjh

Czwartek, 16.09.2005

Sadjksad jsahdjhasdhsadjh

A tak powinny:

Czwartek, 16.09.2005

Sadjksad jsahdjhasdhsadjh :: Dodał: ktos

SAdsajkdhsadhasdjsahjsadh :: Dodał: druig ktos

fdg dfg dfgdfgfdkgjdfkgdfg :: Dodał: druig ktos

Czwartek, 15.09.2005


SAdsajkdhsadhasdjsahjsadh :: Dodał: sadsad ktos

fdg dfg dfgsadsadfkgdfg :: Dodał: sadsad ktos

Gdzie wstawic ten kod który sprawdza, czy data była już wyświetlona questionmark.gif? Jak on powinien wyglądac questionmark.gif?
nospor
gdzie wstawic? jak to gdzie? tam gdzie wyswietlasz date. to chyba logiczne

  1. <?php
  2.  
  3. //.....
  4. else {
  5. $data = null;
  6. while($row_newsy = mysql_fetch_row($result_newsy)) {
  7. if (!$data || $data != $row_newsy['polezdatą']){
  8. //tu se wyswietl date
  9. $data = $row_newsy['polezdatą'];
  10. }
  11.  
  12. //TU WYSWIETLAM RESZTE...
  13.  
  14. );
  15. }
  16.  
  17. ?>
vieri_pl
Nie działa sad.gif Oto kod:

  1. <?php
  2. function limit_news() {
  3. global $id, $row_newsy, $na_start, $na_stronie;
  4. $result_newsy = sql("select * from news order by id DESC LIMIT 10;");
  5. if(mysql_num_rows($result_newsy) == 0) {
  6. echo '<center> Brak nowych wiadomosci </center> ';
  7. }
  8. else {
  9. while($row_newsy = mysql_fetch_row($result_newsy)) {
  10. $komentarze = mysql_query("SELECT count(*) FROM comments WHERE id_news = ".$row_newsy[0]."");
  11. // Przypisujemy to do zmiennej //
  12. $kom = mysql_result($komentarze,0);
  13. $data = null;
  14. if (!$data || $data != $row_newsy['4']){
  15. //tu se wyswietl date
  16. $data = $row_newsy['4'];
  17. echo '<hr><center><strong>'.$data.'</strong></center><hr><br />';
  18. }
  19.  
  20. <p class="tytul_newsa"><strong>'.$row_newsy['1'].'</strong>
  21.  :: Dodal: <strong>'.$row_newsy['3'].'</strong> :: <a href="komentarze.php?id='.$row_newsy['0'].'">
  22. Komentarzy ('.$kom.')</a></p>
  23. <p>'.$row_newsy['2'].'</p>
  24.  
  25.  
  26. ';
  27. }
  28. }
  29.  
  30. }
  31. ?>
crash
  1. <?php
  2. while( $row_newsy = mysql_fetch_row( $result_newsy ) )
  3. {
  4.    // ...
  5.    $data = $row_newsy[ 4 ];
  6.    
  7.    if( $data != $oldData )
  8.    {
  9.       echo '<hr><center><strong>' . $data . '</strong></center><hr><br />';
  10.    }
  11.    // ...
  12.    $oldData = $data;
  13. }
  14. ?>


Ten temat o wiele bardziej pasuje do php Początkujący niż do Baz Danych i właśnie tam go przenoszę...
nospor
no mistrzuniu. wstydzilbys sie pisac ze nie dziala exclamation.gif!
pewnie ze nie dziala jak ty moj kod zle wklejasz. ten kawalek:
$data = null;
jest przed petla u mnie a nie tak jak ty to dales w petli.jak juz cos kopiujesz to rob to z glową exclamation.gif!
vieri_pl
Tak jak Crash Nie działa sad.gif

  1. <?php
  2. function limit_news() {
  3. global $id, $row_newsy, $na_start, $na_stronie;
  4. $result_newsy = sql("select * from news order by id DESC LIMIT 10;");
  5. if(mysql_num_rows($result_newsy) == 0) {
  6. echo '<center> Brak nowych wiadomosci </center> ';
  7. }
  8. else {
  9. while($row_newsy = mysql_fetch_row($result_newsy)) {
  10. $komentarze = mysql_query("SELECT count(*) FROM comments WHERE id_news = ".$row_newsy[0]."");
  11. // Przypisujemy to do zmiennej //
  12. $kom = mysql_result($komentarze,0);
  13.  
  14. $data = $row_newsy[ 4 ];
  15.  
  16.  if( $data != $oldData )
  17.  {
  18. echo '<hr><center><strong>' . $data . '</strong></center><hr><br />';
  19.  }
  20.  // ...
  21.  $oldData = $data;
  22.  
  23. <p class="tytul_newsa"><strong>'.$row_newsy['1'].'</strong>
  24.  :: Dodal: <strong>'.$row_newsy['3'].'</strong> :: <a href="komentarze.php?id='.$row_newsy['0'].'">
  25. Komentarzy ('.$kom.')</a></p>
  26. <p>'.$row_newsy['2'].'</p>
  27.  
  28.  
  29. ';
  30. }
  31. }
  32.  
  33. }
  34. ?>


Tak jak nospor nie działa sad.gif

  1. <?php
  2. function limit_news() {
  3. global $id, $row_newsy, $na_start, $na_stronie;
  4. $result_newsy = sql("select * from news order by id DESC LIMIT 10;");
  5. if(mysql_num_rows($result_newsy) == 0) {
  6. echo '<center> Brak nowych wiadomosci </center> ';
  7. }
  8. else {
  9. $data = null;
  10. while($row_newsy = mysql_fetch_row($result_newsy)) {
  11. $komentarze = mysql_query("SELECT count(*) FROM comments WHERE id_news = ".$row_newsy[0]."");
  12. // Przypisujemy to do zmiennej //
  13. $kom = mysql_result($komentarze,0);
  14. if (!$data || $data != $row_newsy['4']){
  15. //tu se wyswietl date
  16.  
  17. $data = $row_newsy['4'];
  18. echo '<hr><center><strong>'.$data.'</strong></center><hr><br />';
  19. }
  20.  
  21. <p class="tytul_newsa"><strong>'.$row_newsy['1'].'</strong>
  22.  :: Dodal: <strong>'.$row_newsy['3'].'</strong> :: <a href="komentarze.php?id='.$row_newsy['0'].'">
  23. Komentarzy ('.$kom.')</a></p>
  24. <p>'.$row_newsy['2'].'</p>
  25.  
  26.  
  27. ';
  28. }
  29. }
  30.  
  31. }
  32. ?>


Jestem początkujący nie kumam tego exclamation.gif!
Nadal nad każdym newsem jest data...
nospor
teraz ten kod co moj wkleiles wyglada dobrze. Osobiscie nie widze bledu. a czy te newsu masz posortowane po dacie? Bo w kodzie widze ze nie. bo zeby to dzialalo to rekordy musza byc posortowane po dacie
vieri_pl
  1. <?php
  2. $result_newsy = sql("select * from news order by data LIMIT 10;");
  3. ?>


Mam tak i nie działa... może to dlatego w tabeli mam pole typu varchar questionmark.gif
nospor
data jest typu varchar? No tak to nic dziwnego ze źle sortuje smile.gif
vieri_pl
Wcale nie mam date typu varchar ale w jednym reordzie było Czwartek, 16.12.1999
a w drugim było Czwartek 16.12.1999 o lol sory za zamieszanie...
nospor
to w jakim formacie maszs tą date?
bo napisales ze raz bylo:
Czwartek, 16.12.1999
a innym razem:
Czwartek 16.12.1999

czyli ze nie ma przecinka. jesli takie masz dane to nic dziwnego ze moj skrypt nie zadzialal. są to dwie rozne daty z punktu widzenia porownania co robie i dlatego je wypisuje.
vieri_pl
date mam w formacie Czwartek, 16.12.1999 a ja miałem dwa różne formaty daty w bazie dlatego nie dzialało. A nie śmiecąc na forum jak zrobić by dobazy dodawał mi się miesiąc w języku polskim questionmark.gif

bo dodaje tak date('D, d.m.Y'); i dodaje mi np. Mon zamiast poniedziałek... dać to do tablicy questionmark.gif Jak to ma wyglądać questionmark.gif? Mon = poniedziałek itd tak questionmark.gif ale czy przypisać to do zmiennej questionmark.gif? Jak to ma wyglądać questionmark.gif
nospor
czyli wiec pole z data jest typu VARCHAR, skoro ty trzymasz tam date w roznych formatach. Zamien to na DATE jesli jeszcze mozesz. bedziesz mogl se pozniej dowoli taką date formatowac i unikniesz takich niespodzianek co teraz miales.

Co do drugiego pytania to bylo juz to pare razy na forum, poszukaj (locale i data - cos w tym rodzaju)
vieri_pl
Ok. Pole w bazie jest już typu date... Co do drugiego znalazłem. I po trzecie wielkie sory zataki syf na forum, i ogólne zamieszanie, ale no zasadzka totalna z tym przecinkiem...

PS: Crash i Nospor wasze przykłady działają smile.gif Wielkie dzięki exclamation.gif!
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.