Autor Zpráva
Jiřík
Profil
Dobrý den,
následující kod mi na local funguje, ale na serveru prostě ne. Má to vypsat obsah tabulky.
Ukazuje mi to : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource. Zkoušel jsem rady zde na diskuzi co jsem kde našel k tématu, ale nic mi nepomáhá. Mohl by prosím někdo pomoct to rozchodit? Jsem věčný LAMA

<?php
   $spojeni = MySQL_pConnect("mysql","uzivatel", "heslo");
if(!$spojeni): 
   echo "ERROR: nelze navázat spojení s databázovým serverm !!!";
endif;

	$vysledek = MySQL_DB_Query("nazev db", $sql, $spojeni);
while($zaznam = MySQL_Fetch_Array($vysledek)): 
   echo $zaznam[id]."<br>";
   echo $zaznam[nadpis]."<br>";
   echo $zaznam[text]."<br>";
   echo $zaznam[datum]."<br><br>";
endwhile;
?>

tomas657
Profil
$vysledek = MySQL_DB_Query("nazev db", $sql, $spojeni);

kde máš definované $sql ?
Joker
Profil
Jiřík:
A samotný ten SQL dotaz třeba v phpMyAdminu funguje (nejlépe před mysql_db_query dát die($sql), zkopírovat dotaz a vložit do phpMyAdminu)?

Mimochodem, manuál k mysql_db_query:
This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.
= Tato funkce je zavržena od PHP 5.3.0 a odstraněna od PHP 6.0.0. Nedoporučuje se na tuto funkci spoléhat.
Jiřík
Profil
Doplňuju $sql omylem jsem jej nezkopíroval
Takže v reálu mám toto na local kde to funguje, ale na serveru už ne.
<?php
   $spojeni = MySQL_pConnect("mysql","uzivatel", "heslo");
if(!$spojeni): 
   echo "ERROR: nelze navázat spojení s databázovým serverm !!!";
endif;
$sql = "SELECT * FROM clanky;";
    $vysledek = MySQL_DB_Query("nazev db", $sql, $spojeni);
while($zaznam = MySQL_Fetch_Array($vysledek)): 
   echo $zaznam[id]."<br>";
   echo $zaznam[nadpis]."<br>";
   echo $zaznam[text]."<br>";
   echo $zaznam[datum]."<br><br>";
endwhile;
?>

$sql jsem zadal do phpadmin a tam funguje. zobrazí se tabulka "clanky" což je žádaný cíl. Pro jistotu jsem ten dotaz nechal vytvořit samotným phpadminem a dal do kodu, ale nic se nemění.
Takže kod jsem upravil takto:
<?php
   $spojeni = MySQL_pConnect("mysql","uzivatel", "heslo");
if(!$spojeni): 
   echo "ERROR: nelze navázat spojení s databázovým serverm !!!";
endif;
$sql = "SELECT * FROM `clanky` LIMIT 0, 30 ";
	$vysledek = MySQL_DB_Query("nazevDB", $sql, $spojeni);
while($zaznam = MySQL_Fetch_array($vysledek)):
   echo $zaznam[id]."<br>";
   echo $zaznam[nadpis]."<br>";
   echo $zaznam[text]."<br>";
   echo $zaznam[datum]."<br><br>";
endwhile;
?>

Ale hlásí to:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
Jako vždy to bude nějaká pitumůstka, nějaká čárka nebo tečka, ale sakra nevím kde....
SwimX
Profil
Jiřík
Ale hlásí to:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

toznaemáže mysql_query nevratilplatný výsledek.

tipnul bych si,existujev databázi tabulka clanky?

jiank pár detailů:
mysql_fetch_array je zbytečné pokud používášasociativní pole,pouívej mysq_fetch_assoc

$zaznam[id] je teoreticky špatně i když funguje. PHP vezme id,jelikož ho nezná,takho nahradí konsantou pojmenovanou id do níž vloží id takže to ve výsledku funguje jak má,ale čistě by to mělo být
$zaznam['id']
Jiřík
Profil
Tak se mi to podařilo rozchodit a ani nevím jak. Udělal jsem pouze to že jsem smazal celou databázi a znovu vytvořil. Ted už to šlape i na serveru.... Děkuji vám za váš čas a trpělivot...
Mastodont
Profil
----
Jiřík
Profil
SwimX děkuj iza postřeh. Budu se tím držet

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: