INSERT meerdere rijen met gelijke name
nathanael - 10/03/2010 20:44
HTML gevorderde
Hoi sitemasters,
Wie-o-wie kan mij helpen...? ik ben een rittenregistratie systeem aan het maken en daarbij moet je voor een hele maand je gemaakte ritten invoeren.
Mijn tabel ziet er zo:
id user dag maand jaar omschrijving locatie kilometers
id user dag maand jaar omschrijving locatie kilometers
Als ik een formulier maak zoals deze:
<?php for($i=0; $i < 20; $i++) {
?><tr>
<td><input type="text" name="dag[]" maxlength="2" size="1" />-<input type="text" name="maand[]" maxlength="2" size="1" />-<input type="text" name="jaar[]" value="<?php echo $laatstejaar; ?>" maxlength="4" size="4" /></td>
<td><input type="text" name="locatie[]" size="15" /></td>
<td><input type="text" name="omschrijving[]" size="15" /></td>
<td><input type="text" name="kilometers[]" size="3" /></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4"><input type="submit" name="ritadministratie" value="Verstuur" /></td>
</tr>
</form>
<?php for ( $i = 0 ; $i < 20 ; $i ++ ) {
?> <tr>
<td><input type="text" name="dag[]" maxlength="2" size="1" />-<input type="text" name="maand[]" maxlength="2" size="1" />-<input type="text" name="jaar[]" value="
<?php echo $laatstejaar ; ?> " maxlength="4" size="4" /></td>
<td><input type="text" name="locatie[]" size="15" /></td>
<td><input type="text" name="omschrijving[]" size="15" /></td>
<td><input type="text" name="kilometers[]" size="3" /></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4"><input type="submit" name="ritadministratie" value="Verstuur" /></td>
</tr>
</form>
Hoe krijg ik dan met een query al deze rijen in mijn database.
Ik zat zelf al te klooien met
<?php
for($i=0; $i < count($_POST['dag']); $i++) {
mysql_query("INSERT INTO km_ritadmin (id, user, dag, maand, jaar, omschrijving, locatie, kilometers) VALUES('','".$_SESSION['suser']."', '".$_POST['dag']."', '".$_POST['maand']."', '".$_POST['jaar']."', '".$_POST['omschrijving.']."', '".$_POST['locatie']."', '".$_POST['kilometers']."')");
}
<?php
for ( $i = 0 ; $i < count ( $_POST [ 'dag' ] ) ; $i ++ ) { mysql_query ( "INSERT INTO km_ritadmin (id, user, dag, maand, jaar, omschrijving, locatie, kilometers) VALUES('','" . $_SESSION [ 'suser' ] . "', '" . $_POST [ 'dag' ] . "', '" . $_POST [ 'maand' ] . "', '" . $_POST [ 'jaar' ] . "', '" . $_POST [ 'omschrijving.' ] . "', '" . $_POST [ 'locatie' ] . "', '" . $_POST [ 'kilometers' ] . "')" ) ; }
Maar dan post ie bij elke rij en elke kolom 0, kortom het bevat geen waarde. Nu heb ik gezocht naar soort gelijke forum items en naar het script meerdere rijen verwijderen met checkboxen, maar ik kom er niet meer uit.
Kan iemand mij op weg helpen?
4 antwoorden
Gesponsorde links
TotempaaltJ - 10/03/2010 20:59
PHP interesse
Is het niet SET (blahblah) VALUES (blahblah) ?
nathanael - 10/03/2010 21:17
HTML gevorderde
Oke op zich werkt het, mits ik alle 20 rijen met velden vul.
<?php
$count = count($_POST['dag']);
for($i=0; $i < $count; $i++) {
mysql_query("INSERT INTO km_ritadmin (id, user, dag, maand, jaar, omschrijving, locatie, kilometers) VALUES('','".$_SESSION['suser']."', '".$_POST['dag'][$i]."', '".$_POST['maand'][$i]."', '".$_POST['jaar'][$i]."', '".$_POST['omschrijving'][$i]."', '".$_POST['locatie'][$i]."', '".$_POST['kilometers'][$i]."')") or die(mysql_error());
}
?>
<?php
$count = count ( $_POST [ 'dag' ] ) ;
for ( $i = 0 ; $i < $count ; $i ++ ) {
mysql_query ( "INSERT INTO km_ritadmin (id, user, dag, maand, jaar, omschrijving, locatie, kilometers) VALUES('','" . $_SESSION [ 'suser' ] . "', '" . $_POST [ 'dag' ] [ $i ] . "', '" . $_POST [ 'maand' ] [ $i ] . "', '" . $_POST [ 'jaar' ] [ $i ] . "', '" . $_POST [ 'omschrijving' ] [ $i ] . "', '" . $_POST [ 'locatie' ] [ $i ] . "', '" . $_POST [ 'kilometers' ] [ $i ] . "')" ) or
die ( mysql_error ( ) ) ; }
?>
Nu is mijn volgende vraag, hoe kan ik dan alle lege velden eruit filteren (of iig niet posten)?
BTW @nephilim: kan je een voorbeeld geven met foreach... Ik snap nl nooit wat van een foreach loop. Heb er diverse keren naar gekeken...
Jelmerholland - 10/03/2010 22:37
PHP beginner
Je kan ook
'NULL' invoeren toch?
Gewoon NIET zeggen 'NOT NULL'.
Of is dat geen oplossing?
Gesponsorde links
Dit onderwerp is gesloten .