Gå til innhold

MySQL error, hvorfor?


Anbefalte innlegg

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 av Tha_Zaynt
Lenke til kommentar
Videoannonse
Annonse

Vel, feilmeldingene forklarer problemet ditt ganske greit.

Du prøver å bruke en funksjon som krever en mysql result resource (eller hva det heter :p).

 

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.

Lenke til kommentar

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.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...