Tha_Zaynt Skrevet 19. august 2004 Skrevet 19. august 2004 (endret) Prøvde meg på en paging-tutorial på sindrem.com, men jeg får bare mySQL error; Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\news\vis.php on line 24 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\news\vis.php on line 35 vis.php <link rel="stylesheet" type="text/css" href="style.css"> <? class Paging { var $x; var $display = 10; //antall poster per side var $XX = '<br>Ingen resultater funnet<br>'; var $counter, $number, $pages, $i, $query2,$query, $result2, $result, $num_record; function DoPaging($startrow, $prevrow, $nextrow) { $global_db = mysql_connect('localhost', 'admin', 'xxxxx'); mysql_select_db($mySQLdb, $global_db); $this->Query = "SELECT * FROM nyhet"; $this->result = mysql_query($this->Query); $this->num_record = mysql_num_rows($this->result); if (empty($startrow)) { $startrow=0; } $this->Query2 = "SELECT * FROM nyhet ORDER BY dato DESC LIMIT $startrow, $this->display"; $this->result2 = mysql_query($this->Query2); $this->counter = 0; $this->number = mysql_num_rows($this->result2); $this->i = 0; $teller = 0; if ($this->number == 0) : print("<br><center><P><b>Det er mest sannsynlig ingen poster registrert i denne kategorien.</b></p></center>"); elseif ($this->number > 0) : while ($this->i < $this->number): //****************************************************** //her må du endre verdiene //****************************************************** //variabel feltnavn i tabellen $tittel = mysql_result($this->result2,$this->i,"tittel"); $navn = mysql_result($this->result2,$this->i,"navn"); $nyhet = mysql_result($this->result2,$this->i,"nyhet"); $dato = mysql_result($this->result2,$this->i,"dato"); $id = mysql_result($this->result2,$this->i,"id"); echo " <table class='tdtop' width='$TableWidth' cellpadding='2' border='1'> <tr> <td class='tekst' align='left'>$tittel</td> </tr> </table> <table class='tdmid' cellpadding='2' width='$TableWidth' border='1'> <tr> <td>$nyhet</td> </tr> </table> <table class='tdbottom' cellpadding='2' width='$TableWidth' border='1'> <tr> <td class='tekst2' align='left'>skrevet $dato av $navn </td> <td align='right' class='tekst2'> [ <a href=\"slettinnhold.php?id=$id\">Slett</a> | <a href=\"rediger.php?id=$id\">Rediger</a> ]</td> </tr> </table> <p>"; //****************************************************** //Slutt endre. Resten bør være intakt. Har du ingen ID, så fjerner du denne fra print-statementet nedenfor. //****************************************************** $this->i++; endwhile; endif; if ($startrow != 0) { $prevrow = $startrow - $this->display; print("<a href=\"$PHP_SELF?startrow=$prevrow&ID=$ID\">Nyere</a>\n"); } $this->pages = intval($this->num_record / $this->display); if ($this->num_record % $this->display) { $this->pages++; } if ($this->pages > 1) { for ($i=1; $i <= $this->pages; $i++) { $nextrow = $this->display * ($i - 1); if(!$this->number == 0) { print("<a href=\"$PHP_SELF?startrow=$nextrow&ID=$ID\">$i</a>\n "); } } } if (!(($startrow / $this->display) == $this->pages - 1) && $this->pages != 1) { if(!$this->number == 0) { $nextrow = $startrow + $this->display; print("<a href=\"$PHP_SELF?startrow=$nextrow&ID=$ID\">Eldre</a>\n"); } } if ($this->num_record < 1) { print("$this->XX"); } } } $p_obj =& new Paging; $p_obj->DoPaging($_GET['startrow'],$_GET['prevrow'],$_GET['nextrow']); ?> Endret 19. august 2004 av Tha_Zaynt
hallgeirl Skrevet 20. august 2004 Skrevet 20. august 2004 Vel, feilmeldingene forklarer problemet ditt ganske greit. Du prøver å bruke en funksjon som krever en mysql result resource (eller hva det heter ). Etter du kjører mysql_query() bør du sjekke at queryen ble utført riktig. Det kan du gjøre sånn: $result = mysql_query("SELECT * FROM tbl"); if (!$result) { die("Query feilet: " . mysql_error()); } Hvis mysql_query feilet, vil du få denne feilen. Dette er en fin måte å finne ut HVORFOR den feiler.
joffar Skrevet 20. august 2004 Skrevet 20. august 2004 Du har ikke definert $mySQLdb $global_db = mysql_connect('localhost', 'admin', 'xxxxx'); mysql_select_db($mySQLdb, $global_db); $this->Query = "SELECT * FROM nyhet"; siden systemet ikke hvet hvilken database den skal kobles mot, vil den heller ikke finne tabellen nyhet.
Tha_Zaynt Skrevet 20. august 2004 Forfatter Skrevet 20. august 2004 Jepp. Så ikke den..nå funker det. Takk for hjelpen!
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå