Autor Zpráva
Holicz
Profil
Zdravím. Mám kód
	<? $data1=mysql_query("SELECT * FROM clanky");  
  while ($data=mysql_fetch_array($data1)) 
         {
      // Nějaký kód         
        }
        $pocet_radku = mysql_num_rows($data1);
        echo $pocet_radku;
  ?>


V databázi je jeden článek, ale podle PHP žádný. Kde je chybka? Předem děkuji ..
Kry5
Profil
Nepřepisuješ třeba někde v tom while proměnnou $data1 na něco jiného? Zkus si dát
var_dump($data1);

před a za cyklus.
Holicz
Profil
Před cyklem resource(4) of type (mysql result)
Za cyklem - resource(4) of type (mysql result)
rubab
Profil *
snad je patrné, že to máš mimo cyklus while

tedy:

<? $data1=mysql_query("SELECT * FROM clanky");
while ($data=mysql_fetch_array($data1))
{

$pocet_radku = mysql_num_rows($data1);
echo $pocet_radku;


}

?>
okolojdouci
Profil *
rubab:
snad je patrné, že to máš mimo cyklus while

Patrné to je a je to v pořádku, mysql_num_rows nemá uvnitř cyklu co dělat.
rubab
Profil *
pak tedy takto:

$data1 = mysql_query("SELECT * FROM clanky", $link);
$pocet_radku = mysql_num_rows($data1);
rubab
Profil *
v $link pak bude mysql_connect bla bla bla
rubab
Profil *
tady to máš z manuálu:

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>
DarkMeni
Profil
  //Máš před tím nějaký kód?
  //Jestli ne tak to bude tím že nejsi připojený k databázi, a jestli ano a jsi připojený tak zkus:
    <?php $data1=mysql_query("SELECT * FROM `clanky`") or die(mysql_error());
  while ($data=mysql_fetch_array($data1)) 
         {
      // Nějaký kód         
        }
        $pocet_radku = mysql_num_rows($data1);
        echo $pocet_radku;
  ?>

I když je <? snad stejný jako <?php tak s tim druhým zápisem by bylo hned jasný že jde o php skript, pak ty divný úvozovky slouží pro názvy v sql příkazu, kdyby jsi měl sloupec třeba table a chtěl ho vybrat tak by to neprošlo ale s `table` by to už prošlo a ta posledí úprava ti oznámí jestli je tam přece jen nějaká chyba (ale zbytek skritpu se neprovede jestli tam nějaka bude).
Holicz
Profil
DarkMeni:
Před tím mám jen HTML hlavičku (a začátek body atd..), nějaké DIVy ke stylu a připojení k databázi (include)
K databázi připojen jsem, protože daný článek se vypíše.
Za první 2 rady děkuji, rád jsem se poučil
No a nakonec.. Mysql_error nic nevypsal.

Ps. ta poznámka " // Nějaký kód " ... Tam je příkaz pro vypsání článků
DarkMeni
Profil
Tak potom už mě napadá jen jestli to nebude náhodou tím že je to až po vytáhnutí všech řádků (mysql_fetch_(assoc nebo array nebo to třetí)), napadá mě že tím jak ten řádek třeba tou funkcí uložíš do jiné proměnné tak se z té ve které je uložený výsledek smaže, ale to mě jen tak napadá takže se dá zkusit tu proměnnou s počtem řádků nastavit ještě před vypisováním článků.
<?php
$data1 = mysql_query("SELECT * FROM `clanky`") or die(mysql_error());
$pocet_radku = mysql_num_rows($data1);
if($pocet_radku > 0){
  while($data = mysql_fetch_array($data1)){
    //Nějaký kód
  }
  echo "Celkový počet článků: $pocet_radku";
}else{
  echo "Nebyl nalezen žádný článek.";
}

Jestli nezabere ani tohle tak pak to bude zajímavý.
Holicz
Profil
V kódu od vás byla ještě chybka, ale už mi to šlape. Pro ty, kteří by měli stejný problém je výsledný kód zde
$data1 = mysql_query("SELECT * FROM `clanky`") or die(mysql_error());
$pocet_radku = mysql_num_rows($data1);
if($pocet_radku > 0){
  while($data = mysql_fetch_array($data1))
  {
 // Kód pro výpis článků
         }

  echo "Celkový počet článků: $pocet_radku";
  }
else{
  echo "Nebyl nalezen žádný článek.";
}      

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:

0