Uitvoer foreach
Hoi,
Ik heb het volgende scipt:
foreach ($result as $value => $key) {
if ($key > 2) {
echo " melding
";
} else {
}
}
Hiermee wordt een controle uitgevoerd of een bepaalde categorie niet meer dan 2 keer voorkomt in een formulier. Wat ik nu graag zou willen is dat als de $key waarde kleiner is dan 2 dat de gegevens uit mijn formulier worden toegevoegd aan de database. Als ik deze query echter plaats onder de } else { van bovenstaande if functie wordt de INSERT query meerdere malen uitgevoerd. En dit is uiteraard niet de bedoeling.
Heeft iemand een idee?
Ik heb het volgende scipt:
foreach ($result as $value => $key) {
if ($key > 2) {
echo " melding
";
} else {
}
}
Hiermee wordt een controle uitgevoerd of een bepaalde categorie niet meer dan 2 keer voorkomt in een formulier. Wat ik nu graag zou willen is dat als de $key waarde kleiner is dan 2 dat de gegevens uit mijn formulier worden toegevoegd aan de database. Als ik deze query echter plaats onder de } else { van bovenstaande if functie wordt de INSERT query meerdere malen uitgevoerd. En dit is uiteraard niet de bedoeling.
Heeft iemand een idee?
Gesponsorde koppelingen:
ja, volkomen duidelijk
Niet dan?
Volgens mij snap je de constructie van een array niet helemaal want je gooit de waarde en de key doorelkaar.
Het moet zijn:
edit:
Je array kun je als controle even op het scherm zetten met de functie print_r().
Het moet zijn:
Code (php)
edit:
Je array kun je als controle even op het scherm zetten met de functie print_r().
Gewijzigd op 01/01/2006 22:08:00 door Martijn B
@martijn:
het was juist met opzet zo gedaan.
Voorafgaand aan de foreach staat namelijk de volgende code:
$controle2 = array ($_POST['Group1'],$_POST['Group4'],$_POST['Group7'],$_POST['Group10'],$_POST['Group13'],$_POST['Group16'],$_POST['Group19'],$_POST['Group22'],$_POST['Group25'],$_POST['Group28'],$_POST['Group31'],$_POST['Group34']);
$result2 = array_count_values ($controle2);
$result2 geeft hier de verschillende categorieën aan (verschillende Groups) en geeft aan hoe vaak deze voorkomt. Als de $key dan groter is dan 2 dan moet de melding komen dat dit niet mag.
Is de melding lager dan 2 dan moet de INSERT query worden uitgevoerd. Op deze manier wordt de query echter zo vaak uitgevoerd als er catgeorieën zijn en dat is niet de bedoeling.
het was juist met opzet zo gedaan.
Voorafgaand aan de foreach staat namelijk de volgende code:
$controle2 = array ($_POST['Group1'],$_POST['Group4'],$_POST['Group7'],$_POST['Group10'],$_POST['Group13'],$_POST['Group16'],$_POST['Group19'],$_POST['Group22'],$_POST['Group25'],$_POST['Group28'],$_POST['Group31'],$_POST['Group34']);
$result2 = array_count_values ($controle2);
$result2 geeft hier de verschillende categorieën aan (verschillende Groups) en geeft aan hoe vaak deze voorkomt. Als de $key dan groter is dan 2 dan moet de melding komen dat dit niet mag.
Is de melding lager dan 2 dan moet de INSERT query worden uitgevoerd. Op deze manier wordt de query echter zo vaak uitgevoerd als er catgeorieën zijn en dat is niet de bedoeling.
En wat is nu precies de waarde van $result. Kun je deze array eens uitprinten met print_r.
Array ( [Amsterdam Pirates] => 2 [DOOR Neptunus] => 2 [DPA Kinheim] => 3 [Hypotheekzeker Tornados] => 2 [Konica Minolta Pioniers] => 1 [Instant Holland Almere 90] => 2 )
Jij zoekt zoiets, wel even de true/false zetten zoals jij het wilt.
Hoi SanThe,
TOP! Heb een beetje "gepield" en inmiddels werkt het. Ik het het nu zo gedaan:
TOP! Heb een beetje "gepield" en inmiddels werkt het. Ik het het nu zo gedaan:
Zoals jij het nu doet geeft ie altijd de waarde uit de laatste foreach. Lijkt mij niet goed, maar dat kan ik niet beoordelen.
"TOP! Heb een beetje "gepield" en inmiddels werkt het. Ik het het nu zo gedaan"
Heb jij het zo gedaan? Ik zag zo juist, een precies dezelfde post op phpfreakz staan. En daar kreeg jij dit antwoord van: Gerdriaan Mulder
Dus verander dat, "heb ik gedaan" maar ff in, "met dank aan: Gerdriaan Mulder
Jokkebrokje ;)
Heb jij het zo gedaan? Ik zag zo juist, een precies dezelfde post op phpfreakz staan. En daar kreeg jij dit antwoord van: Gerdriaan Mulder
Dus verander dat, "heb ik gedaan" maar ff in, "met dank aan: Gerdriaan Mulder
Jokkebrokje ;)



