login  Naam:   Wachtwoord: 
Registreer je!
 Forum

INSERT meerdere rijen met gelijke name

Offline nathanael - 10/03/2010 20:44
Avatar van nathanaelGouden medaille

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:
  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
Offline TotempaaltJ - 10/03/2010 20:59
Avatar van TotempaaltJ PHP interesse Is het niet SET (blahblah) VALUES (blahblah)?
Offline Filip - 10/03/2010 20:59 (laatste wijziging 10/03/2010 21:00)
Avatar van Filip 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 
Bedankt door: nathanael
Offline nathanael - 10/03/2010 21:17
Avatar van nathanael Gouden medaille

HTML gevorderde
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...
Offline Jelmerholland - 10/03/2010 22:37
Avatar van Jelmerholland PHP beginner 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-2024 Sitemasters.be - Regels - Laadtijd: 0.243s