Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyświetlanie kilka rekordów
Forum PHP.pl > Forum > Przedszkole
poki2003
Witam serdecznie smile.gif

Mam taka funkcje
  1. <?php
  2. function getNextGame1() {
  3.  global $dbaseMatchData, $SID, $Next_Match,$No_Matches_Scheduled,$lid;
  4.  global $dbase, $globalTeams, $dbaseLids;
  5.  
  6.  $todaysdate = date("Y-m-d H:i:s");
  7.  $tz = date("T");
  8.  
  9.  $query = "select * from $dbaseMatchData inner join $dbaseLids on $dbaseMatchData.lid=
    $dbaseLids.lid where matchdate>='$todaysdate' order by matchdate LIMIT 5"
    ;
  10.  $result = $dbase->query($query);
  11.  
  12.  $count = mysql_num_rows($result);
  13.  
  14.  if ($count == 0) {
  15.  $nextmatch = "<b>$No_Matches_Scheduled</b>";
  16.  } else {
  17.  
  18.  $line = mysql_fetch_array($result, MYSQL_ASSOC);
  19.  $matchid = $line["matchid"];
  20.  $matchleague = $line["title"];
  21.  $matchdate = $line["matchdate"];
  22.  $textdate = convertDatetimeToScreenDate($matchdate);
  23.  $hometeam = stripslashes($line["hometeam"]);
  24.  $awayteam = stripslashes($line["awayteam"]); 
  25.  $nextmatch = "<div style='widht= 580px;border= 2px dashed red; background-color= #e0f8b0;'><center><table><tr><td>$matchleague</td><td>$hometeam</td><td>-</td><td>$awayteam</td> <td>$textdate</td></tr></table></center> </a></b></div>";
  26.  }
  27.  
  28.  
  29.  return $nextmatch;
  30. }
  31. ?>


Wyświetla jeden wynik (mecz) tylko ...

Mam prośbe do ekspertów z tego forum
Czy można zrobić i w jaki sposób by wyświetlało np . 5 rekordów (meczy )

Prosze o pomoc...
nospor
Trzeba wziąść to w pętle. Poszukaj se w manualu przy opisie chociazby mysql_fetch_array() jak to powinno wygladac

proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
poki2003
A czy byłby ktoś tak miły i mi napisał jak to zrobić ?

Bardzo proszę ...

Ps czytałem w manualu ale jak próbuje zrobić to wywalają mi sie błedy .... już pomału tarce siły
Jojo
Nikt nie będzie nic robił za Ciebie pokaż jakie błędy Ci się wyświetlają, a ktoś na pewno pomoże Ci rozwiązać problem.
poki2003
Witam ponownie
przebudowałem fukncje na taką ale dalej nic
teraz wyświetla się jeszcze błąd .

Notice: Undefined variable: number
Fatal error: Unknown function: iloscmeczow()

  1. function getNextMatches($number) {
  2.  global $dbaseMatchData, $SID, $Next_Match,$No_Matches_Scheduled,$lid;
  3.  global $dbase, $globalTeams, $dbaseLids;
  4.  $todaysdate = date("Y-m-d H:i:s");
  5.  $tz = date("T");
  6.  $query = "select * from $dbaseMatchData inner join $dbaseLids on $dbaseMatchData.lid=
    $dbaseLids.lid where matchdate>='$todaysdate' order by matchdate";
  7.  $result = $dbase->query($query);
  8.  $ilosc_meczow = mysql_num_rows($result);
  9.  
  10.  if ($ilosc_meczow == 0) {
  11.  $nextmatch = "<b>$No_Matches_Scheduled</b>";
  12.  } else {
  13.  
  14. $nr_meczu=1;
  15. $k=0;
  16. echo "<table class="MyNextMatches">";
  17. while($nr_meczu<=$ilosc_meczow && $nr_meczu<$number) {
  18.  $nr_meczu++;
  19.  $line = mysql_fetch_array($result, MYSQL_ASSOC);
  20.  $matchid = $line["matchid"];
  21.  $matchleague = $line["title"];
  22.  $matchdate = $line["matchdate"];
  23.  $textdate = convertDatetimeToScreenDateMoja($matchdate);
  24.  $hometeam = stripslashes($line["hometeam"]);
  25.  $awayteam = stripslashes($line["awayteam"]);
  26.  
  27.  if($k==0){echo "<tr>";$k=1;}else{echo "<tr>";$k=0;}?>
  28.  <td><? echo $matchleague; ?></td>
  29.  <td><? echo $hometeam; ?></td>
  30.  <td>-</td>
  31.  <td><? echo $awayteam; ?></td>
  32.  <td><? echo $textdate; ?></td>
  33. </tr>
  34. <?} 
  35. $ile = iloscMeczow();
  36. if($k==0){echo "<tr>";}else{echo "<tr>";}
  37. echo "<td class="center" colspan="5">Ilość wszystkich meczów, które można jeszcze typować:&nbsp;<b>$ile</b></td></tr></table>";
  38.  }
  39. }


czy mógłby mi ktoś pomóż
jarrod
Cytat(poki2003 @ 24.10.2006, 23:27:19 ) *
Notice: Undefined variable: number
Fatal error: Unknown function: iloscmeczow()


Notice: Undefined variable: number -> niezdefiniowana wartość: number (argument funkcji -> nie przekazujesz parametru). Błąd poziomu notice nie zatrzymuje działania programu. Tylko informuje Cię że coś jest nie tak.

Fatal error: Unknown function: iloscmeczow() -> Nieznana finkcja: iloscmeczow(). Tego wyjaśniać chyba nie muszę...

mysql_fetch_assoc" title="Zobacz w manualu php" target="_manual
mysql_fetch_array" title="Zobacz w manualu php" target="_manual
mysql_fetch_object" title="Zobacz w manualu php" target="_manual
Tam naprawdę jest wszystko wyjaśnione jak to zrobić.

Konstrukcja:
  1. <?php
  2. // zadajesz pytanie
  3. $res = mysql_query($zapytanie);
  4.  
  5. while($row = mysql_fetch_assoc($res))
  6. {
  7. // jeden rekord masz teraz w zmiennej $row
  8. // przy każdym przejściu pętli pobierany jest następny rekord
  9. // i tak do ostatniego rekordu pasującego do zapytania
  10. // np.:
  11.  $matchleague[] = $line["title"];
  12. }
  13.  
  14. var_dump($matchleague);
  15. ?>

Wynik (przykładowy):
  1. array(2) {
  2. [0] => 'tytul1'
  3. [1] => 'tytul2'
  4. }
poki2003
Słuchaj jarrod ale w tej bazie danych mam średnio od 500 do 700 rekordów.
i chiałbym wyświetlić według daty pierwszych 10 rekordów ( od najbiższej dany do najdalszej )
Zrobiłem to przez funkcje bo tak jest prościej , na stronie później wywołam tą funkcje....

Ale nie ejstem w stanie wyświetlić 10 pierwszych rekorów sad.gif ... róznie próbowałem ale nie potrafie
ciągle wyświetla mi jeden rekord , najbliższy.. po innych modyfikacjach wystepuje błąd..
Czy mógłby mi ktoś pomóz , nie potrafie tego użyć z manuala
Fallout
  1. <?php
  2. function getNextGame1() {
  3.  global $dbaseMatchData, $SID, $Next_Match,$No_Matches_Scheduled,$lid;
  4.  global $dbase, $globalTeams, $dbaseLids;
  5.  
  6.  $todaysdate = date("Y-m-d H:i:s");
  7.  $tz = date("T");
  8.  
  9.  $query = "select * from $dbaseMatchData inner join $dbaseLids on $dbaseMatchData.lid=
    $dbaseLids.lid where matchdate>='$todaysdate' order by matchdate LIMIT 5"
    ;
  10.  $result = $dbase->query($query);
  11.  
  12.  $count = mysql_num_rows($result);
  13.  
  14.  if ($count == 0) {
  15.  $nextmatch = "<b>$No_Matches_Scheduled</b>";
  16.  } else {
  17.  
  18.  $nextmatch = '';
  19.  while($line = mysql_fetch_array($result))
  20.  {
  21.  $matchid = $line["matchid"];
  22.  $matchleague = $line["title"];
  23.  $matchdate = $line["matchdate"];
  24.  $textdate = convertDatetimeToScreenDate($matchdate);
  25.  $hometeam = stripslashes($line["hometeam"]);
  26.  $awayteam = stripslashes($line["awayteam"]);
  27.  $nextmatch .= "<div style='widht= 580px;border= 2px dashed red; background-color= #e0f8b0;'><center><table><tr><td>$matchleague</td><td>$hometeam</td><td>-</td><td>$awayteam</td> <td>$textdate</td></tr></table></center> </a></b></div>";
  28. }
  29. }
  30.  
  31.  return $nextmatch;
  32. }
  33. ?>


o to chodzi?
jarrod
Cytat(poki2003 @ 25.10.2006, 13:09:22 ) *
Słuchaj jarrod ale w tej bazie danych mam średnio od 500 do 700 rekordów.
i chiałbym wyświetlić według daty pierwszych 10 rekordów ( od najbiższej dany do najdalszej )


limity warunki i inne
poki2003
Fallout niestety nie oto....

potrzebuje tak jak napisał jarrod warunki, limity

ale tego nie potrafie

poddaje sie , chyba komuś zapłace bo mi to potrzeba a nikt nie chce pomóż sad.gif
jarrod
Cytat(poki2003 @ 25.10.2006, 20:58:33 ) *
Fallout niestety nie oto....

potrzebuje tak jak napisał jarrod warunki, limity

ale tego nie potrafie

poddaje sie , chyba komuś zapłace bo mi to potrzeba a nikt nie chce pomóż sad.gif


Ok.
Jaką masz strukturę tabel z których chcesz pobrać dane?

Uczyłeś się w ogóle jak budować zapytania do MySQL-a? "warunki, limity" są linkiem do kursu z którego można się nauczyć budować zapytania.

Ty potrzebujesz już w zapytaniu określić że chcesz dziesięć rekordów od daty bieżącej wstecz. Czyli musisz użyć warunku "WHERE" a następnie limitu abyś nie pobierał bałej tabeli:

Przykład:
  1. SELECT tb1.`id`,tb.2`data` FROM tabela1 AS tb1
  2. INNER JOIN tabela2 AS tb2 ON tb1.`id`=tb2.`id`
  3. WHERE tb2.`data`<= now()
  4. ORDER BY tb2.`data`
  5. LIMIT 10


To oczywiście przykład z kosmosu ale jak poczytasz jakiś manual to myślę że Ci coś zaświta w głowie jak to powinno wyglądać.
Fallout
  1. $query = "select * from $dbaseMatchData inner join $dbaseLids on $dbaseMatchData.lid=$dbaseLids.lid where matchdate>='$todaysdate' order by matchdate LIMIT 5"


no ale przecież w tym zapytaniu masz porównanie do daty i limit?
poki2003
ale nie działa to zapytanie... różnie próbowałem
w takim wypadku pokazuje mi tez jeden rekord
jarrod
Wykonaj to zapytanie przez PhpMyAdmina i sprawdź ile wyników otrzymałeś. Jeśli tylko jeden to zanaczy że tyle ich dokładnie jest (przy takich warunkach).
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.