Autor Zpráva
saphire
Profil
Zdravim,
mám problém s výpisem údajů z MySQL,
server mi při vykonávání tohoto kodu(je to v podstatě příklad z linuxsoft.cz) píše následující chyby:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/strankovani.php on line 16

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/strankovani.php on line 43

<?php
  define ("ROWS", 50);
  //nadefinovani udaju
$db_server= "localhost";
$db_user="home";
$db_name="databaze";
$db_pwd="123456";
//pripojeni databaze
//pripojeni k db
mysql_connect ($db_server, $db_user, $db_pwd) OR
die("Pripojeni k databazi selhalo: ".mysql_error());
mysql_select_db ($db_name) OR die("Nelze vybrat databazi: ".mysql_error());

//nastaveni nazvu tabulky
define ("TABLE_NAME", clanky);
//skript z LinuxSoft
  if (!isset($_GET["celkem"])) //pokud nevíme, kolik bude záznamů tak to zjistíme... 
  {
    $vysledek=mysql_query("select * as pocet from TABLE_NAME");
    $zaznam= mysql_fetch_array($vysledek);
    $celkem=$zaznam["pocet"];
  }
  else
  {
      $celkem=$_GET["celkem"];
  }
  if ($celkem>ROWS) 
  {
    if (!isset($_GET["od"])) $od=1; else $od=$_GET["od"]; 
    $vysledek=mysql_query("select * from TABLE_NAME"." limit ".($od-1).", ".ROWS);
      echo "Záznamů: ".$od."-";
    echo (($od+ROWS-1)<=$celkem)?($od+ROWS-1):$celkem;
    echo " z celkem $celkem&nbsp;&nbsp;&nbsp;";
      //začátek - vytvoř odkaz pouze pokud nejsme na začátku
       if ($od==1) echo "Začátek&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&amp;od=1\">Prvn&iacute;</a>&nbsp;|&nbsp;";
      //zpět - vytvoř odkaz pouze pokud nejsme v prvních ROWS
       if ($od<ROWS) echo "Předchozí&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&amp;od=".($od-ROWS)."\">Předchozí</a>&nbsp;|&nbsp;";
    //další - vytvoř, pouze pokud nejsme v posledních ROWS
       if ($od+ROWS>$celkem) echo "Následující&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&amp;od=".($od+ROWS)."\">Následující</a>&nbsp;|&nbsp;";
    //poslední - to je posledních (zbytek po dělení ROWS) záznamů
       if ($od>$celkem-ROWS) echo "Posledn&iacute;&nbsp;<BR>"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&amp;od=".($celkem-$celkem%ROWS+1)."\">Konec</a><BR>";
  }
  if(mysql_num_rows($vysledek) != 0){
      while($zaznam = mysql_fetch_array($vysledek, MYSQL_NUM)){
echo $zaznam["0"]." ".$zaznam["1"]."<BR>\n";}}
mysql_close()
?>

Předem děkuji!
Moderátor Alphard: Opravil jsem nadpis, nedalo se na to dívat.
Beavis
Profil
saphire
<ot> Výpis se píše s tvrdým i. </ot>
Máš v databázi příslušnou tabulku, ve které je dostatek dat, aby se dala stránkovat?
Alphard
Profil
Je tam spousta chyb:
"select * as pocet" alias pro * nebude fungovat
"select * as pocet from TABLE_NAME" konstanta nesmí být součástí řetězce

Dále si vypište echo mysql_error().
saphire
Profil
Beavis,Aphard:
Omlouvám se za ten nadpis:-|.
Beavis:
Tabulka samozřejmě existuje a data jsou taky.
Aphard:
Celé sem to prošel podle přiručky a opravil to, (to mysql_close() tam taky původně nebylo :),
Díky!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: