hoe query maken?
Ik heb nu allemaal verschillende selectboxen met de name position[] . Nu wil ik een query maken om deze in de database te stoppen.
Dit gaat duidelijk dus niet werken omdat wanneer de gebruiker meerdere selecteerd ik allerlei namen krijgen in een kolom. Hoe moet ik het dan doen?
Een lus is de oplossing maar ik weet niet hoe ik dit in elkaar zou moeten zetten.
Zoiets misschien?
Dit gaat duidelijk dus niet werken omdat wanneer de gebruiker meerdere selecteerd ik allerlei namen krijgen in een kolom. Hoe moet ik het dan doen?
Een lus is de oplossing maar ik weet niet hoe ik dit in elkaar zou moeten zetten.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
while ($rij = $_POST["position"])
{
$sql = "INSERT INTO POSITION (
Name )
VALUES (
'"$rij"' )
";
mysql_query($sql);
}
{
$sql = "INSERT INTO POSITION (
Name )
VALUES (
'"$rij"' )
";
mysql_query($sql);
}
Zoiets misschien?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
foreach ($_POST['position'] as $position) {
$sql = "
INSERT INTO POSITION
(
Name
)
VALUES
(
'" . $position . "'
)
";
}
?>
foreach ($_POST['position'] as $position) {
$sql = "
INSERT INTO POSITION
(
Name
)
VALUES
(
'" . $position . "'
)
";
}
?>
Edit:
En dan natuurlijk binnen de foreach de query uitvoeren en error checking toepassen
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Is dat alles? Bedankt ! Ik moet me toch wat meer verdiepen in de foreach lus..
Zeker aan te raden. Je hebt hem veel nodig ;-0
Kan je me misschien ook uit leggen waarom het nou juist niet kan met bijvoorbeeld een while loop of een van de andere loops?
Edit:
Ik kan toch ook in de loop :
$aorid[] = mysql_insert_id(); in zetten ?
Het dan later in de loop ook nog in een ander tabel inserten door ".$aorid."
Maar wordt dan wel de eerste array gepakt en daarna weer de tweede en hoef ik niet een [] achter de variabele te zetten? Dit doe ik nog natuurlijk allemaal in de loop, je kan toch wel een if plaatsen in een foreach?
Veel vragen maar ik hoop op een antwoord
Edit:
Ik kan toch ook in de loop :
$aorid[] = mysql_insert_id(); in zetten ?
Het dan later in de loop ook nog in een ander tabel inserten door ".$aorid."
Maar wordt dan wel de eerste array gepakt en daarna weer de tweede en hoef ik niet een [] achter de variabele te zetten? Dit doe ik nog natuurlijk allemaal in de loop, je kan toch wel een if plaatsen in een foreach?
Veel vragen maar ik hoop op een antwoord
Gewijzigd op 01/01/1970 01:00:00 door Orhan T
Het kan met een for loop ook, maar waarom zou je?
Je ziet dat die syntax veel lastiger is.
Code (php)
Je ziet dat die syntax veel lastiger is.
Kan je misschien ook nog de vragen onder mijn edit beantwoorden. Ik plaats ze hier wel even:
Ik kan toch ook in de loop :
$aorid[] = mysql_insert_id(); in zetten ?
Het dan later in de loop ook nog in een ander tabel inserten door ".$aorid."
Maar wordt dan wel de eerste array gepakt en daarna weer de tweede en hoef ik niet een [] achter de variabele te zetten? Dit doe ik nog natuurlijk allemaal in de loop, je kan toch wel een if plaatsen in een foreach?
Veel vragen maar ik hoop op een antwoord(en)
Ik kan toch ook in de loop :
$aorid[] = mysql_insert_id(); in zetten ?
Het dan later in de loop ook nog in een ander tabel inserten door ".$aorid."
Maar wordt dan wel de eerste array gepakt en daarna weer de tweede en hoef ik niet een [] achter de variabele te zetten? Dit doe ik nog natuurlijk allemaal in de loop, je kan toch wel een if plaatsen in een foreach?
Veel vragen maar ik hoop op een antwoord(en)
Het kan ook prima met een while loop:
of met een for loop
Wat je ziet is dat de notatie van foreach het makkelijkste is om een lijst mee te doorlopen. De while loop is handig wanneer je iets steeds wil herhalen tot je aan een bepaalde conditie voldoet, en de for loop is practischer voor een sequentie (1,2,3,4,5).
In de praktijk kan je ze allemaal door elkaar gebruiken met een iets andere notatie.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
while ($value = array_shift($_POST['position'])) {
$sql = "
INSERT INTO POSITION
(
Name
)
VALUES
(
'" . $value . "'
)
";
}
?>
while ($value = array_shift($_POST['position'])) {
$sql = "
INSERT INTO POSITION
(
Name
)
VALUES
(
'" . $value . "'
)
";
}
?>
of met een for loop
Code (php)
Wat je ziet is dat de notatie van foreach het makkelijkste is om een lijst mee te doorlopen. De while loop is handig wanneer je iets steeds wil herhalen tot je aan een bepaalde conditie voldoet, en de for loop is practischer voor een sequentie (1,2,3,4,5).
In de praktijk kan je ze allemaal door elkaar gebruiken met een iets andere notatie.
@arend, kan je achter '".$_POST["position"][0]."' niet de [0] weglaten?
Hier nog de vragen die ik hiervoor ook stelde:
Kan je een if plaatsen in een foreach loop?
$aorid[] = mysql_insert_id wanneer ik dat in de loop zet en er later om terug vraag in de loop, mag ik het dan zo typen $aorid of moet het als een array: $aorid[]?
Bedankt voor de reacties :D
Hier nog de vragen die ik hiervoor ook stelde:
Kan je een if plaatsen in een foreach loop?
$aorid[] = mysql_insert_id wanneer ik dat in de loop zet en er later om terug vraag in de loop, mag ik het dan zo typen $aorid of moet het als een array: $aorid[]?
Bedankt voor de reacties :D
moet de mysql_query buiten de { }?
'Jeroen:
Nee, anders voer je de query maar 1x uit, alleen de laatste.moet de mysql_query buiten de { }?
Voor je eigen gemak maak je eerst een query string aan, $query en ga je die daarna pas uitvoeren in de functie mysql_query(), controleren of het is gelukt, etc. etc.
Ps. Het is wel een oud topic en niet eens je eigen topic...




