login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help

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 online




Gouden medaille

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:
  1. id user dag maand jaar omschrijving locatie kilometers



Als ik een formulier maak zoals deze:
  1. <?php for($i=0; $i < 20; $i++) {
  2. ?><tr>
  3. <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>
  4. <td><input type="text" name="locatie[]" size="15" /></td>
  5. <td><input type="text" name="omschrijving[]" size="15" /></td>
  6. <td><input type="text" name="kilometers[]" size="3" /></td>
  7. </tr>
  8. <?php
  9. }
  10. ?>
  11. <tr>
  12. <td colspan="4"><input type="submit" name="ritadministratie" value="Verstuur" /></td>
  13. </tr>
  14. </form>



Hoe krijg ik dan met een query al deze rijen in mijn database.

Ik zat zelf al te klooien met
  1. <?php
  2. for($i=0; $i < count($_POST['dag']); $i++) {
  3. 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']."')");
  4. }


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?  

Door: TotempaaltJ
Op: 10/03/2010 20:59
#1
Offline 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
#2
Offline 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 

Door: nathanael
Op: 10/03/2010 21:17
#3
Online online



Gouden medaille

HTML beginner

Oke op zich werkt het, mits ik alle 20 rijen met velden vul.

  1. <?php
  2. $count = count($_POST['dag']);
  3.  
  4. for($i=0; $i < $count; $i++) {
  5. 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());
  6. }
  7. ?>


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...

Door: Jelmerholland
Op: 10/03/2010 22:37
#4
Offline 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...
Actieve forumberichten:

© 2002-2010 Sitemasters.be - Regels - Gehost door: Netfeed - Laadtijd: 0.112s