Kjapp og trygg hosting for Wordpress

En veldig rar feil med info fra en database...

Mr Vest

Sjefen over alle sjefer!
Jeg får en merkelig feil her som jeg ikke helt forstår om jeg skal være ærlig.

$getantallrows = mysql_query("SELECT id FROM `table` WHERE `one`='xx' OR `two`='xx' AND `active`='1'", $c);
$antallrows=mysql_num_rows($getantallrows);

Altså... Det som er rart her da, det er at denne gir meg tilbake tallet 1, mens tallet som her faktisk er riktig er 0. Det finnes nemlig ingen rader i denne tabellen som har det jeg har spesifisert i spørringa. Jeg har forsøkt selv med totalt 4 rader, hvor 2 av radene inneholder xx på enten "one" eller "two" mens active har vært 0, og ikke 1. Allikevel klarer denne og presse ut tallet 1.

one og two er varcharfelt, mens active er int. Vet noen av dere hva som muligens kan være galt? Jeg forsøkte å ta bort '' rundt 1-tallet i spørringa, det hjalp ikke... :(
 

Pong

Jeg selger sʇɥƃıluʍop :)
piffig ja -- har ikke noe svar, men en tips.
Skriv ikke:`one`='xx' OR `two`='xx' AND `active`='1'
Men enten: (`one`='xx' OR `two`='xx') AND `active`='1'
eller: `one`='xx' OR (`two`='xx' AND `active`='1')
alt etter hva som er meningen såklart (antakeligvis første).

Da vet ikke bare folk som leser hva som er meningen, men også den som skriver :)
Kanskje det hjelper med en SELECT COUNT(id)... ?
 

to-ov

Medlem
Var litt kjapp på avtrekkeren og ser at det som pong sier er korrekt. bruk () rundt one='xx' or two='xx' så funker det fint
 

Mr Vest

Sjefen over alle sjefer!
Når jeg leser over denne tråden en gang til, da ser jeg at dette med () ikke var ment som en løsning, men et tips for og gi mer ryddig kode. For meg var det faktisk en løsning som fikset hele greien når jeg la til () slik som du skrev Pong. Snodige greier... Men jaja, uansett. Det funker! :)
 

Mr Vest

Sjefen over alle sjefer!
Ja, hehe. Tro det eller ei, dette med at man ikke skal bruke "" eller '' rundt slike "tall-felt" er faktisk noe av det som jeg faktisk har fått med meg. Steike, jeg er flink. :D
 
Topp