Categorieën >
PHP & SQL >
INSERT meerdere rijen met gelijke name
Onderwerp: INSERT meerdere rijen met gelijke name
Door: nathanael
Op: 10/03/2010 20:44
|
|
online
|

HTML beginner
|
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? |
|
|
|
offline
|
PHP interesse
|
Is het niet SET (blahblah) VALUES (blahblah)?
|
Door: nephilim
Op: 10/03/2010 20:59
Laatste wijziging: 10/03/2010 21:00
|
|
offline
|
IRC guru
|
Ten eerste kan je beter werken met foreach, dat werkt handiger dan een forloop.
En als 2de moet je wel $_POST['dag'][0] enzo gebruiken voor je insert, dus in dit geval met je forloop word dat $_POST['vars'][$i].
@ vorige post: Neen, SET is bij een update
|
|
|
|
online
|

HTML beginner
|
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...
|
|
|
|
offline
|
PHP beginner
|
Je kan ook
'NULL' invoeren toch?
Gewoon NIET zeggen 'NOT NULL'.
Of is dat geen oplossing?
|
Je moet ingelogd zijn om een reactie te kunnen posten...
|
|
|