konstigt php problem
Hej,
Jag har ett litet problem med php (säkert något litet jag missat bara).
$catA = array($test1, $test2, $test3, $test4);
$or = false;
for ($i = 0; $i < count($catA); $i++){
if($catA[$i]){
if(!$or){
$where = "WHERE cat1 = '".$i."' or cat2 = '".$i."' or cat3 = '".$i."'";
print( $where );
$or = true;
}else{
}
}
}
problemet är att $where blir 0 hela tiden av någon anledning.
EDIT:
Nu vart jag ännu mer förvirrad. Jag ändrade så att det blev såhär istället:
$catA = array($test1, $test2, $test3, $test4);
$orB = False;
for ($i = 0; $i < count($catA); $i++){
$toadd = $i + 1;
if($catA[$i]){
if(!$orB){
$where = "WHERE cat1 = '".$toadd."' or cat2 = '".$toadd."' or cat3 = '".$toadd."'";
$orB = True;
}else{
$where = $where." AND cat1 = '".$toadd."' or cat2 = '".$toadd."' or cat3 = '".$toadd."'";
}
}
}
$where = $where." ORDER BY created DESC LIMIT 0,5";
print( $where );
och nu printar den ut något vettigt iallafall men problemet är att den printar ut för mycket. även fast $catA[$i] = false så fortsätter den :S
så tillslut blir $where = "WHERE cat1 = '1' or cat2 = '1' or cat3 = '1' AND cat1 = '2' or cat2 = '2' or cat3 = '2' AND cat1 = '3' or cat2 = '3' or cat3 = '3' AND cat1 = '4' or cat2 = '4' or cat3 = '4' ORDER BY created DESC LIMIT 0,5"
när det egentligen ska blir såhär (om $test1 = true, 2 = false, 3 = false och 4 = true):
WHERE cat1 = '1' or cat2 = '1' or cat3 = '1' AND cat1 = '4' or cat2 = '4' or cat3 = '4' ORDER BY created DESC LIMIT 0,5
EDIT 2: löste det, $catA[$i] var tydligen en string och inte boolean.