Autor Zpráva
cesar
Profil
Zdravím,

mám takový menší problém, se kterým si lámu hlavu už cca 2 dny. :(

Dělal jsem komunikaci s mail server přes POP3. Stáhl jsem si třídu a poté dodělal skript. Vše bylo bez problému do doby, než jsem údaje chtěl zapsat do databáze. Abych vše řádně zapsal, tak je potřeba si vytáhnout nějaká data z databáze a zjistil jsem, že mi tam nějak nefunguje funkce mysql_fetch_array();. Jak jsem na to přišel? Dal-li jsem za fce or die("Zastavilo se to u mysql_fetch_array");. Jak jsem předpokládal, tak se také splnilo, hláška se vypsala.

Neměl by někdo pro mě nějakou radu? :)

cesar
WanTo
Profil
mysql_fetch_array($query) funguje tak, že se jako parametr předá ID dotazu a tahle funkce načte další řádek výsledků do asociativního (hashového) pole.
WanTo
Profil
Takže třeba pro select id, name from users vrátí pole s prvky $pole["id"] a $pole["name"].
cesar
Profil
Ano, já vím co vrací fce mysql_fetch_array a jak funguje apod., ale mi jde o to, že se mi nechce ta fce mysql_fetch_array vůbec vykonat.
WanTo
Profil
Tak sem pošli kus toho kódu kde to padá.
cesar
Profil

require_once('/home/www/cz/lista/www/config.php'); //nacteni souboru pro pripojeni k db
$spojeni=mysql_connect($MySQL_server,$MySQL_user,$MySQL_user_password) or die("Nelze se přijit na MySQL server.");
$spojenidb=mysql_select_db("lista_cz") or die("Nelze vybrat db.");

/*$mysql_stat = explode(" ", mysql_stat($spojeni));

for($b=0; $b<=7; $b++){
echo $mysql_stat[$b]."<br />";
}*/

$sql_banka = "SELECT count(*) FROM lista_ebanka WHERE vsymbol='".$line["vsymbol"]."' AND cena='".$line["castka"]."' AND stav='0'";
$dot_banka = mysql_query($sql_banka);
if(mysql_num_rows($dot_banka) > 0){

$sql_ban = "SELECT * FROM lista_ebanka WHERE vsymbol='".$line["vsymbol"]."' AND cena='".$line["castka"]."' AND stav='0'";
$dot_ban = mysql_query($sql_ban) or die("Nelze provést mysql_query(\$sql_ban)");
$prev_ban = mysql_fetch_array($dot_ban) or die("Nelze provést mysql_fetch_array(\$dot_ban)");
echo $prev_ban[0]."<br />";


Ten kód není nijak slavně napsán, ale testoval jsem tam hlavně kde je chyba.
WanTo
Profil
Tak to asi požadavek nic nevrátil. Zkus vypsat mysql_num_rows($sql_ban)
WanTo
Profil
Teda mysql_num_rows($dot_ban)
cesar
Profil
Tak jsem zkusil a vrátilo to sice 0, ale když jsem dal sql dotaz, který se tam vykonává do phpmyadmina, tak to vybralo správně jeden 1 řádek. :/
WanTo
Profil
Dával jsi tam přesně ten sql dotaz co vypíše echo $sql_ban?
cesar
Profil
Ano



$sql_ban = "SELECT * FROM lista_ebanka WHERE vsymbol='".$line["vsymbol"]."' AND cena='".$line["castka"]."' AND stav='0'";
$dot_ban = mysql_query($sql_ban) or die("Nelze provést mysql_query(\$sql_ban)");
echo mysql_num_rows($dot_ban)."<br />";
echo $sql_ban."<br />";
cesar
Profil
Již jsem na svůj problém přišel. Nevšiml jsem si, že mi to na konec vkládá mezeru. Zmátlo mě to, že mi to vzal phpmyadmin a když jsem měl

SELECT count(*) FROM...


tak mi to spolkl OK.

Mockrát děkuji za rady... ;-)
WanTo
Profil
Tak to je dobře že se podařilo záhadu vyřešit :-)
cesar
Profil
Ještě jednou Ti mockrát děkuji =)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0