Sorry voor de kick, maar ik zit met een zelfde soort probleem als de TS.
Echter, ik wil waardes uit een array (die gevult word door MySQL) vergelijken met een andere array (die ook gevult word vanuit MySQL, maar dan een andere query...)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <?php
$kamerarray = array("313", "414", "515", "616");
/*
Normaal word dit gevult door MySQL dus, gaat op GoT wat lastig ;)
Bovenstaande array, is een array, met ALLE bestaande kamers
*/
$checkarray = array("414", "515", "616");
/*
Deze komt ook uit MySQL, met een maar...
Want dit zijn de kamers die op een datum, een tijd gereserveerd zijn...
*/
foreach ($kamerarray as $kvalue => $kkey)
{
foreach($kvalue as $i) // Regel 90*
{
while($checkwaarde != $i)
{
echo "Ongelijk!";
}
$i++;
}
}
?> |
Dit doorloopt de array netjes 4x (Aangezien de kamerarray 4 kamers heeft).
Echter krijg ik een warning, en snap ik even niet waarom... Ik doe dus wat fout, maar om er weer een halve dag op blind te staren zit ik niet op te wachten... Zoals tevens ook te zien is, wil ik niet de key's met elkaar vergelijken, maar de waardes uit elke array...
Warning: Invalid argument supplied for foreach() in bestand on line 90*
is de foutmelding die ik krijg...
Of is het zo, dat ik de waarde van $kkey kan vergelijken met de waarde van $ckey? Zo ja, hoe doe ik dit dan? Heb net
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php
foreach ($kamerarray as $kvalue => $kkey)
{
foreach($checkarray as $cvalue => $ckey)
{
while($cvalue != $kvalue)
{
echo "Ongelijk!";
}
$i++;
}
}
?> |
geprobeert, maar dit geeft ook een warning, en doorloopt de loop maar 1x, dus ik was er net 'dichterbij' dan net... Maar kom net dat ene beetje te kort...
Poging 3:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| <?php
foreach ($kamerarray as $kvalue => $kkey)
{
foreach($checkarray as $cvalue => $ckey)
{
if($cvalue != $kvalue)
{
echo "Je bent hartstikke ongelijk!!";
}
}
}
?> |
Dit maar geprobeert, en dit geeft ook een warning, waarom weet ik nog steeds niet, weet wel, dat het schijnbaar aan de eerste foreach loop ligt, maar wat is er daar fout aan dan als ik vragen mag?
Thnx in advance!
Ik weet dat het niet hoeft, maar het is wel zo 'netjes' natuurlijk
EDIT:
Mocht de vraag komen waarom gebruik je er geen MySQL query voor?

Ik heb het geprobeert, maar krijg het nog niet echt aan de gang, mede doordat ik gebonden zit aan de PEAR::DB class, en een oude MySQL-versie (3.25.xx)(

). Had wel een query, maar die geeft dan op het moment dat er op een datum geen 'vrije' kamers meer weer, terwijl er op een tijdstip een kamer best vrij kan zijn...
SQL:
1
2
3
| SELECT kamers.kamer_nummer from `kamers`
LEFT JOIN `reserveringen` on kamers.kamer_nummer=reserveringen.int_kamer_nummer
WHERE reserveringen.int_kamer_nummer is null; |
Dit is die query, die lege kamers geeft, maar kan er door de left join geen extra where clause aan hangen, op de datum en een begin- en eindtijd en dus verdwijnen op den duur (eigenlijk heel snel) de rooms uit de lijst van beschikbare kamers op een datum, een begin
tijd en een eindtijd
EDIT2: Over het eerder door NME gepostte in_array gaat bij mij dus niet, want ik zoek niet een vaste waarde in en array... Alhoewel ik wel zou kunnen itereren, door kamerarray te laten itereren over checkarray... Maar hoe moet ik dan de code daarvoor maken?
* CH4OS weet het ff niet meer
[
Voor 59% gewijzigd door
CH4OS op 11-05-2005 10:43
]