Píše mi to tuhle chybu:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /3w/wz.cz/s/skautzapy/other/uvod.php on line 36
co stím mám dělat?
a zdroják
..
.
.
$sql="SELECT * FROM aktual order by im desc;";
$result = mysql_db_query("aktual",$sql,$spojeni);
while ($zaznam = mysql_fetch_row($result))
{ echo $zaznam[0];
echo $zaznam[1];
echo $zaznam[2];
}
..
..
.
připojen k databázi jsem i k tabulce...
nevim sice, jak presne vypada funkce mysql_db_query, ale kdyby tam byla jenom mysql_query, tak jako prvni parametr to chce SQL prikaz, ne nazev tabulky
btw. pripojuje se jenom k databazi, ne k tabulce
zkus si zkontrolovat, jestli te funki mysql_db_query() predavas vsechny parametry takove, jake maji byt....
$sql="SELECT * FROM aktual order by im desc";
$result = mysql_query($sql);
while ($zaznam = mysql_fetch_row($result))
{ echo $zaznam[0];
echo $zaznam[1];
echo $zaznam[2];
}
Ad funkce mysql_db_query():
V manuálu jsem našel toto:
Tato funkce není od verze PHP 4.0.6 podporována.
Pořád to píše tu a samou chybu. Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in
Jestli si to opsal ode mě, tak zkus definovat v cyklu while ty pole slovně, místo číslic a použij na to spíš mysql_fetch_array().
$sql="SELECT * FROM aktual order by im desc";
$result = mysql_query($sql);
while ($zaznam = mysql_fetch_array($result))
{ echo $zaznam["nazev_prvniho_sloupce"];
echo $zaznam["nazev_druheho_sloupce"];
echo $zaznam["nazev_tretiho_sloupce"];
}
.. ale to by asi na to nemělo mít absolutní vliv. Taky koukám na tohle:
$sql="SELECT * FROM aktual order by im desc";
Máš tam opravdu sloupec "im" ? Nemělo by to bejt "id" ?
To už jsem zkoušel. A im se opravdu jmenuje první slooupec. Fakt nevím kde je chyba. Nemůže být chyba někde jinde?
Zkus napřed dotaz přímo, třeba přes sql admina, pak si zkus vypsat chybové hlášení. Tuhhle chybu to obvykle hlásí, když je špatně sql dotaz, pak sql vrátí chybu a result je null. Pak to pochopitelně nepokračuje.
Přes admina je sql příkaz funkční. žádná chybová hláška a vypsali se mi položky z tabulky. takže to chodí.
Ale ten středník do SQL dotazu nepatří ;)
To Petr (skautzapy):
Pošli sem prosím strukturu tabulky "aktual" a pod to hned část skriptu, která tahá data z DB a musíme na to příjít, i kdybysme nechtěli.
Nípal: Jakej středník a kde?
Nic, Nípale, už to vidím a to by byla taky z možných chyb:
$sql="SELECT * FROM aktual order by im desc;";
Ten středník už je pryč a pořád to nechodí.
chyba: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /3w/wz.cz/s/skautzapy/other/uvod.php on line 38
skript:
$sql="SELECT * FROM \"aktual\" order by im desc limit 0,30";
$result = mysql_query($sql);
while ($zaznam = mysql_fetch_array($result))
{ echo $zaznam["im"];
echo $zaznam["datum"];
echo $zaznam["textik"];
}
struktura tabulky:
im int(11) not null auto_increment
datum varchar(30) not null
textik text not null
Proč tam máš v SQL dotazu název tabulky v uvozovkách s escape sekvencí?
$sql="SELECT * FROM \"aktual\" order by im desc limit 0,30";
Zkus je normálně odstranit:
$sql="SELECT * FROM aktual order by im desc limit 0,30";
Pokud toto ani nepůjde, zkus potom toto:
$result = mysql_query("SELECT * FROM aktual");
while ($zaznam = mysql_fetch_array($result)) {
echo $zaznam["im"]."<br />";
echo $zaznam["datum"]."<br />";
echo $zaznam["textik"]."<br />";
}
Tu únikovou sekvenci (\") jsem použil z beznaděje!
Nic nepomáhá to. Pořád to hlásí: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /3w/wz.cz/s/skautzapy/other/uvod.php on line 36.
už jsem beznadějnej
tady je celý skript:
<?
$spojeni=mysql_connect("mysql.wz.cz","skautzapy","karkulka") or die ("Nepodařilo se připojit k DB serveru!");
mysql_select_db("aktual",$spojeni);
echo "<hr color=yellow>";
if ($ready=="ahoj"){
$cas = "Vloženo " . date("j.n.Y G:i:s") . "\n<br>";
if ($text<>"Zde můžete napsat aktuální zprávu, která se zobrazí na hlavní stránce."){
//date("<font color=\"yellow\"><b>j.n.Y, G</b></font>") . " <b> hodin a </b>" . date("<b>i</b>") . "<b> minut </b>";
$sql="insert into aktual (im,datum,textik) values ('','$cas','$text');";
MySQL_Query("aktual", $sql, $spojeni);}
if ((($den<>1) or ($mesic<>leden)) and ($hodina<>"hodina"))
{
$text="Datum příští rady: " . $den ." " . $mesic . " " . "v" . " " . $hodina;
$rada=$text . "^";
$sql="insert into aktual (im,datum,textik) values ('','$cas','$text');";
MySQL_Query("aktual", $sql, $spojeni);
$fp=fopen("other\zpravy.txt","a+"); //if (file_exists("rada.txt"))
fwrite ($fp,$rada);
fclose ($fp);
}}
$result = mysql_query("SELECT * FROM aktual");
while ($zaznam = mysql_fetch_array($result)) {
echo $zaznam["im"]."<br />";
echo $zaznam["datum"]."<br />";
echo $zaznam["textik"]."<br />";
}
?>
Prosím poraďte! Díky
Zkus explicitně zadat připojení k db:
$result = mysql_query("SELECT * FROM aktual", $spojeni);
oni sice píšou, že to dělá samo, ale...
Marek: To by na to nemělo mít vliv
Petr: Co je toto?
if ($text<>"Zde můžete napsat aktuální zprávu, která se zobrazí na hlavní stránce."){
a toto:
MySQL_Query("aktual", $sql, $spojeni);
Máš v DB vůbec tabulku "aktual" ?
Vidím chybu:
mysql_select_db("aktual",$spojeni);
Nemáš databázi přece "aktual", ale "skautzapy", ne?
To Petr:
$spojeni=mysql_connect("mysql.wz.cz","skautzapy","karkulka") or die
Tak tohle už nikdy nedělej! Jsem asi drzej, ale vlezl jsem ti do stránek i do DB a chybu opravil.
A taky ti změnil heslo jak na wz i do databáze. Protože nebylo by to tu poprvé, komu by někdo smazal stránky.
Nové heslo ti posílám na mail: kolarsanta@centrum.cz