Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z mysql :/ a teraz stronnicowanie
Forum PHP.pl > Forum > PHP
michas999
witam,
mam taki kod:
  1. <ul id="lista">
  2.  
  3. <?php
  4. $sql = 'select * from opisy limit 30 where kategoria =' . ((int) $_GET['id']);//...pobranie wyników i ich wyswietlenie
  5. $result = mysql_query($sql);
  6.  
  7. while ($row = mysql_fetch_array($result)) { // to jest 113 linijka kodu
  8.  
  9. echo ("<li><a href=opis.php?opis=".$row['id'];.">".$row['tresc']."</a></li>");
  10.  
  11. }
  12. ?>
  13.  
  14.  
  15. </ul>

i wywala mi takiego byka:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/michal99/public_html/opisy/kategoria.php on line 113
co zle zrobilem?
nitro18
ale limit przyjmuje dwa argumenty:od ktorego wiersza ma pobierać i ile, a u ciebie tylko to ile jest.

popraw:

limit 30 na np. limit 0,30
michas999
ok dziala, thx
ale zmodyfikowalem kod pod pager class

  1. <?
  2. require_once('Pager.class.php');
  3. $sql = 'select count(*) from opisy where kategoria =' . ((int) $_GET['id']);
  4. $result = mysql_query($sql);
  5. $row = mysql_fetch_array($result);
  6. $recordsCount = $row[0];//pobranie liczby rekordów
  7. $pager = new Pager('strona');
  8. $pager->SetTotalRecords($recordsCount);
  9. $pag = $pager->Render(true);
  10. $start = $pager->GetIndexRecordStart();
  11. $end = $pager->GetIndexRecordEnd();
  12.  
  13. //zapytanie z uwzglenieniem stronicowania
  14.  
  15. $sql = 'select * from opisy where kategoria ='.((int) $_GET['id'])' limit '.$start.', 35';
  16. $result = mysql_query($sql);
  17.  
  18. while($row = mysql_fetch_array($result)){
  19.  
  20. ?>
  21. <li><a href="opis.php?opis="<?php echo $row['id']; ?>"><?php echo $row['tresc']; ?></a></li>
  22.  
  23. <?php
  24.  
  25. ?>
  26. <font class="rows">
  27. <?php
  28. echo $pag;//wyswietlenie pager'a
  29. ?>
  30. </font>

blad:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/michal99/public_html/opisy/kategoria.php on line 137
137: $sql = 'select * from opisy where kategoria ='.((int) $_GET['id'])' limit '.$start.', 35';

dalem se rade
teraz:
  1. <?
  2. require_once('Pager.class.php');
  3. $sql = 'select count(*) from opisy where kategoria =' . ((int) $_GET['id']);
  4. $result = mysql_query($sql);
  5. $row = mysql_fetch_array($result);
  6. $recordsCount = $row[0];//pobranie liczby rekordów
  7. $pager = new Pager('strona');
  8. $pager->SetTotalRecords($recordsCount);
  9. $pag = $pager->Render(true);
  10. $start = $pager->GetIndexRecordStart();
  11. $end = $pager->GetIndexRecordEnd();
  12.  
  13. //zapytanie z uwzglenieniem stronicowania
  14.  
  15. $sql = 'select * from opisy limit '.$start.',35 where kategoria =' . ((int) $_GET['id']);
  16. $result = mysql_query($sql);
  17.  
  18. while($row = mysql_fetch_array($result)){
  19.  
  20. ?>
  21. <li><a href="opis.php?opis="<?php echo $row['id']; ?>"><?php echo $row['tresc']; ?></a></li>
  22.  
  23. <?php
  24. }
  25. ?>
  26. <font class="rows">
  27. <?php
  28. echo $pag;//wyswietlenie pager'a
  29. ?>
  30. </font>

blad:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/michal99/public_html/opisy/kategoria.php on line 140

140: while($row = mysql_fetch_array($result)){
michas999
kolejnie:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/michal99/public_html/opisy/kategoria.php on line 137

linia 137:
$sql = 'select * from opisy where kategoria='.((int) $_GET['id'])' limit '.$start.',35';
Hacker
Pisałem zamień
  1. <?php
  2. 'select * from opisy where kategoria ='.((int) $_GET['id'])' limit '.$start.', 35';
  3. ?>

Na
  1. <?php
  2. 'select * from opisy where kategoria ='.((int) $_GET['id']).' limit '.$start.', 35';
  3. ?>
michas999
ok, dzieki :*

ale kolejny problem
ta www: http://opisy.e-kreskowki.com/
wejdzcie w jakas kategorie, nie chce brac na kolejna strone :/
Hacker
Hmm...
Dziwne... Ciekawe dlaczego "nie chce brac na kolejna strone"...
A jaki krótki adres na drugiej stronie po ?...
Pomyśl tongue.gif
michas999
nieweim :/ powiedz co mam zrobic
Kicok
Po pierwsze to LIMIT może przyjąć jedną wartość, np pobieranie 15 pierwszych wierszy:
  1. SELECT * FROM tabela LIMIT 15


Po drugie LIMIT ma być na końcu zapytania, a ty miałeś jeszcze przed klauzulą WHERE
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.