login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > PHP & SQL

INSERT meerdere rijen met gelijke name

nathanael – 10/03/2010 20:44
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?  

4 antwoorden

Gesponsorde links
Daisycon - Verdien geld met uw website

TotempaaltJ – 10/03/2010 20:59
Is het niet SET (blahblah) VALUES (blahblah)?

Filip – 10/03/2010 20:59 (Laatst gewijzigd op 10/03/2010 21:00)
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 

nathanael – 10/03/2010 21:17
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...

Jelmerholland – 10/03/2010 22:37
Je kan ook
'NULL' invoeren toch?
Gewoon NIET zeggen 'NOT NULL'.

Of is dat geen oplossing?

Gesponsorde links

Dit onderwerp is gesloten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.118s