Autor Zpráva
Pesulap
Profil
Ahoj mám dotaz do Mysql

$dotaz=mysql_result(mysql_query("SELECT Count(id) FROM et_polozky WHERE ((
a = ".$hodnoty["1"]." AND b = ".$hodnoty["2"]." OR
b = ".$hodnoty["1"]." AND c = ".$hodnoty["2"]." OR
c = ".$hodnoty["1"]." AND d = ".$hodnoty["2"]." OR
d = ".$hodnoty["1"]." AND a = ".$hodnoty["2"].") AND pouziti=0) "), 0);


A vyhodí mi to hlášku


Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:xampphtdocsxamppeternityindex.php on line 335


nevíte co se mu nelíbí ???
YaD
Profil
nevalídny MySQL príkaz
Pesulap
Profil
no jo ale jakto ??
pokaždé to funguje
když tam jsou třeba tři položky odpovídající vyhodí to 3
a ted mi to vyhodilo tohle ?
YaD
Profil
vyzerá to na mňa komplikovane, takže viac asi nic, ale skús tu 0 na konci zlikvidovať
DJ Miky
Profil
Nemuselo to vrátit žádný výsledek…

if($dotaz2=mysql_query('…')) {
if(mysql_num_rows($dotaz2)) {
$dotaz=mysql_result($dotaz2,0);
}
}
Pesulap
Profil
Takže f($dotaz2=mysql_query('blabla…')) {
if(mysql_num_rows($dotaz2)) {
$dotaz=mysql_result($dotaz2,0);
}
}


mi ošetří co ?

potřebuji udělat dotaz aby mi to řeklo kolik položek odpovídá těmto podmínkám .
díky
Pesulap
Profil
sry mysql_num_rows díky
Pesulap
Profil
po změně na
$dotaz2=mysql_query("SELECT Count(id) FROM et_polozky WHERE ((
a = ".$hodnoty["1"]." AND b = ".$hodnoty["2"]." OR
b = ".$hodnoty["1"]." AND c = ".$hodnoty["2"]." OR
c = ".$hodnoty["1"]." AND d = ".$hodnoty["2"]." OR
d = ".$hodnoty["1"]." AND a = ".$hodnoty["2"].") AND pouziti=0) ");
$dotaz=mysql_num_rows($dotaz2);


píše :-(
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:xampphtdocsxamppetindex.php on line 344

A to je zase co ?
nightfish
Profil
DJ Miky
kdyby mysql nevrátilo žádný výsledek, tak by ta chybová hláška vypadala jinak... tohle PHP vypíše, když je v tom dotazu syntaktická chyba... aneb echo mysql_error(); Pesulapovi poví, v čem je problém
Pesulap
Profil
echo mysql_error;
mi napíše
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND b = 0 AND c = 1 OR b = AND c = 0 AND d = 1 OR c = AND d = 0 AND a ' at line 2
Pesulap
Profil
fakt nevíte co s tím ?
nightfish
Profil
Pesulap
proměnná $hodnoty["1"] neobsahuje žádnou hodnotu...

EDIT:
fakt nevíte co s tím ?
tohle NENÍ placené fórum, lidé zde odpovídají z vlastní vůle a ve svém volném čase, takže klídek...
Pesulap
Profil
aha.. zatím díky a promiňte
hansk
Profil
Možná by to mělo být takto:

a = ".$hodnoty['1']." AND b = ".$hodnoty['2']." OR

Problém je nejspíš v úvozovkách a taky nechápu proč máte před proměnou tečky!
nightfish
Profil
hansk
taky nechápu proč máte před proměnou tečky!
ty tečky slouží ke konkatenaci (spojení) řetězců
a problém je opravdu v tom, že proměnná $hodnoty['1'] je prázdná... (je to poznat z výpisu mysql_error())
hansk
Profil
nightfish
Ano, slouží ke spojení řetězců, ale v daném případě se žádné řetězce nespojují, nebo se snad mýlím?
nightfish
Profil
hansk
spojují...
a = ".$hodnoty["1"]." AND b = ".$hodnoty["2"]." OR
je pokračování řetězce z předchozího řádku... ten končí za
a =
a je spojen s obsahem proměnné $hodnoty["1"], který je dále spojen s dalším řetězcem obsahujícím
AND b =
apod.
Pesulap
Profil
Tákže by to mohlo vypadat nějak takhle ??

$dotaz2=mysql_query("SELECT Count(id) FROM et_polozky WHERE ((
a = "$hodnoty['1']" AND b = "$hodnoty['2']" OR
b = "$hodnoty['1']" AND c = "$hodnoty['2']" OR
c = "$hodnoty['1']" AND d = "$hodnoty['2']" OR
d = "$hodnoty['1']" AND a = "$hodnoty['2']") AND pouziti=0) ");
$dotaz=mysql_num_rows($dotaz2);


ju ?
nightfish
Profil
Pesulap
již dvakrát jsem zde napsal, že problém je v tom, že proměnná $hodnoty["1"] neobsahuje žádnou hodnotu (nebo je prázdná)
zjisti, čím je to způsobeno a oprav to
Pesulap
Profil
jj ale jen jestli je tento dotaz lepší než ten předtím ....
nightfish
Profil
jj ale jen jestli je tento dotaz lepší než ten předtím ....
zhučí na stejnou chybu, takže ani ne...

nicméně to, cos napsal 18:45:01 nejspíš fungovat nebude... (pokud teda nemáš ty uvozovky správně oescapované)
btw jakých datových typů jsou sloupce a, b, c a d?
Pesulap
Profil
VARCHAR
Pesulap
Profil
Mám to takto :

$dotaz2=mysql_query("SELECT Count(id) FROM et_polozky WHERE ((
a = "$hodnoty['1']" AND b = "$hodnoty['2']" OR
b = "$hodnoty['1']" AND c = "$hodnoty['2']" OR
c = "$hodnoty['1']" AND d = "$hodnoty['2']" OR
d = "$hodnoty['1']" AND a = "$hodnoty['2']") AND pouziti=0) ");
$dotaz=mysql_num_rows($dotaz2);


A hlásí mi to

Parse error: syntax error, unexpected T_VARIABLE in C:xampphtdocsxamppeternityindex.php on line 333
nightfish
Profil
Mám to takto :
A hlásí mi to
Parse error: syntax error
protože to máš blbě...
zatím nejvíc ses správnému řešení přiblížil ve svém příspěvku z 2.10.2007 13:22:58, akorát bude potřeba ještě ty hodnoty oapostrofovat...
tzn.

$dotaz2=mysql_query("SELECT Count(id) FROM et_polozky WHERE ((

a = '".$hodnoty['1']."' AND b = '".$hodnoty['2']."' OR ...

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: