Ik word zo langzamerhand knettergek. Ik krijg het volgende maar niet voor elkaar:
ik doe een query op een tabel en die geeft terug 0 of >0 records. In beide gevallen doe ik iets.
Code ziet er zo uit:
 
$sql=mysqli_connect('localhost','root','xx','yy');
 	$result = mysqli_query($sql,"SELECT distinct Type, Gender FROM xxx WHERE Gender='Dames' AND Category = '" . $Var . "' AND Type<>'' ORDER BY Type");

 		$recs = mysqli_num_rows($result); //tijdelijk
 		$row = mysqli_fetch_array($result);
 		
 		if ($recs == 0) {
	 		hier doe ik A....
 		}
  		else
  		{
                        hier doe ik B....
			}			
  		}
		
 	$sql->close();

Bij 1 of meer records wordt er gewoon B, echter als er 0 records zijn wordt A
nooit uitgevoerd. Wat is er fout aan de "if"??
Hulp is welkom, Ger.
Misschien is foutafhandeling wel makkelijker op je $result.
Verder kan je natuurlijk ook even debuggen wat $recs teruggeeft.
Bedankt Aar voor je antwoord. Als $recs 0 teruggeeft, wordt A NIET uitgevoerd.
En de foutafhandeling?
@Aar Ik krijg keurig een set terug met 1 of meerdere records als aan de voorwaarden voldaan is.
Is er NIET aan de voorwaarden voldaan dan krijg ik 0 records terug. (Query dus geslaagd).
In dat laatste geval moet dus A worden uitgevoerd en dat gebeurt niet. Het script slaat dan als het
ware de "if" over en doet NIET de else. Dat is wat me zo verbaast !

Het lijkt me, dat door het slagen van de query de foutafhandeling is beeindigd.
Als er geen records zijn ga je toch op regel 6 een record ophalen.
Haal die regel dus weg en zet hem in de else.
@SanThe, mee eens, maar dat lost het probleem niet op.
Wat geeft echo $recs; als je dat op regel 7 zet?
Eigenlijk wordt het nog gekker:
Als ik de if verander in

if ($recs > 0) {

(dus zou uitgevoerd moeten worden bij 1 of meer records) en als ik dat
test voert het script ook weer de "if" niet uit. Er is iets fout in de
syntax, maar ik wil graag weten wat !


[size=xsmall]Toevoeging op 14/07/2014 15:27:06:[/size]

- SanThe - op 14/07/2014 15:14:42

Wat geeft echo $recs; als je dat op regel 7 zet?


Geeft 0 records, als aan de voorwaarden NIET wordt voldaan en
geeft x records, als aan de voorwaarden WEL wordt voldaan.
Dus precies hetzelfde !

[qoute]
Bij 1 of meer records wordt er gewoon B, echter als er 0 records zijn wordt A
[/qoute]

Toont hij bij 0 dan wel B?
Zo niet dan zit je fout in het stukje waar jij zegt "hier doe ik A...."
@StefanWM:
Klopt, bij 0 wordt geen B gedaan. En wat er fout zit in dat stukje bij A is
mij een raadsel: het volgende staat er, maar een gewone "echo" wordt ook
helemaal niet getoond bij 0.

 		if ($recs == 0) {
//	 		echo "eindelijk 0";
 			    echo "<script>";
   				echo "geentypegevonden();";
  				echo "</script>";
 		}
  		else
  		{

Er moet gewoon een javascript worden uitgevoerd, maar ook al haal ik dat
weg en laat alleen "echo "eindelijk 0";" staan, doet hij ook niks bij 0.

Reageren