Ik heb een bestelformuliertje, waarin men ook het aantal moet aangeven. Wat ik graag wil, is dat als iemand 5 invult, dat er 5 regels in de database komen te staan..
- aantal toevoegen
-
15-05-2006, 18:46 #1
Boyd Internet Solutions
- Berichten
- 92
- Lid sinds
- 19 Jaar
aantal toevoegen
-
In de schijnwerper
-
15-05-2006, 18:55 #2
- Berichten
- 178
- Lid sinds
- 19 Jaar
Zoiets?
PHP Code:$aantal = htmlspecialchars($_POST['aantal']);
$i = 1;
while ($i <= $aantal) {
// hier de uit te voeren mysql-query
}
-
15-05-2006, 19:04 #3
Boyd Internet Solutions
- Berichten
- 92
- Lid sinds
- 19 Jaar
ehm.. ik heb nu een veld..
PHP Code:<input name="aantal" type="text" id="aantal" value="1" size="15" maxlength="3"/>
en daarnaast nog wat velden zoals naam, adres, etc..
helemaal onderaan staan een bestel knop, waarna hij ze allemaal in een database zet.. Dit stukje:
PHP Code:<td height="24"><input name="toevoegen" id="toevoegen2" type="submit" value=" Bestellen " onclick="javascript:if(!confirm('Weet u zeker dat u de bestelling wilt plaatsen?')){return false;};" />
</td>
<td><input name="reset" type="reset" value="Wissen" /></td>
<td> </td>
<td> </td>
</tr>
</table>
</form>
<?
if (isset($_POST['toevoegen'])) {
$klantnummer = $_POST['klantnummer'];
$ordernummer = $_POST['ordernummer'];
$datum = $_POST['datum'];
$naam = $_POST['naam'];
$naam2 = $_POST['naam2'];
$adres1 = $_POST['adres1'];
$adres2 = $_POST['adres2'];
$adres3 = $_POST['adres3'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$telefoonnummer = $_POST['telefoonnummer'];
$code = $_POST['code'];
$bloemenbedrag = $_POST['bloemenbedrag'];
$omschrijving1 = $_POST['omschrijving1'];
$omschrijving2 = $_POST['omschrijving2'];
$omschrijving3 = $_POST['omschrijving3'];
$omschrijving4 = $_POST['omschrijving4'];
$omschrijving5 = $_POST['omschrijving5'];
$kaarttekst1 = $_POST['kaarttekst1'];
$kaarttekst2 = $_POST['kaarttekst2'];
$kaarttekst3 = $_POST['kaarttekst3'];
$kaarttekst4 = $_POST['kaarttekst4'];
$kaarttekst5 = $_POST['kaarttekst5'];
$specialeinstructie1 = $_POST['specialeinstructie1'];
$specialeinstructie2 = $_POST['specialeinstructie2'];
$specialeinstructie3 = $_POST['specialeinstructie3'];
$specialeinstructie4 = $_POST['specialeinstructie4'];
$specialeinstructie5 = $_POST['specialeinstructie5'];
$iDag = $_POST['iDag'];
$iMaand = $_POST['iMaand'];
$iJaar = $_POST['iJaar'];
$soortbestelling = $_POST['soortbestelling'];
$bloemist = $_POST['bloemist'];
$bloemist = $_POST['aantal'];
mysql_query("INSERT INTO gegevens (klantnummer, ordernummer, datum, naam, naam2, adres1, adres2, adres3, postcode, plaats, telefoonnummer, code, bloemenbedrag, omschrijving1, omschrijving2, omschrijving3, omschrijving4, omschrijving5, kaarttekst1, kaarttekst2, kaarttekst3, kaarttekst4, kaarttekst5, specialeinstructie1, specialeinstructie2, specialeinstructie3, specialeinstructie4, specialeinstructie5, iDag, iMaand, iJaar, soortbestelling, bloemist, aantal)
VALUES ('".$klantnummer."', '".$ordernummer."', '".$datum."', '".$naam."', '".$naam2."', '".$adres1."', '".$adres2."', '".$adres3."', '".$postcode."', '".$plaats."', '".$telefoonnummer."', '".$code."', '".$bloemenbedrag."', '".$omschrijving1."', '".$omschrijving2."', '".$omschrijving3."', '".$omschrijving4."', '".$omschrijving5."', '".$kaarttekst1."', '".$kaarttekst2."', '".$kaarttekst3."', '".$kaarttekst4."', '".$kaarttekst5."', '".$specialeinstructie1."', '".$specialeinstructie2."', '".$specialeinstructie3."', '".$specialeinstructie4."', '".$specialeinstructie5."', '".$iDag."', '".$iMaand."', '".$iJaar."', '".$soortbestelling."', '".$bloemist."', '".$aantal."')") or die(mysql_error());
echo "Je hebt een order toegevoegd";
}
?>
-
15-05-2006, 19:16 #4
- Berichten
- 292
- Lid sinds
- 19 Jaar
Wat wil je nu precies vijf keer? Alles?
INSERT Syntax volgen MySQL.com.
Hier zien we onder andere dat het volgende mogelijk is:
Code:INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
-
15-05-2006, 19:17 #5
Boyd Internet Solutions
- Berichten
- 92
- Lid sinds
- 19 Jaar
Zodra er als aantal (dus in het veldje aantal) 5 wordt ingevoerd, moet het 5 keer in de database gezet worden.. en als er dus 93 wordt ingevuld, moet 93 keer die hele zooi in de database gezet worden
-
15-05-2006, 19:28 #6
- Berichten
- 178
- Lid sinds
- 19 Jaar
Wel niet zo efficiënt voor de database, maar goed... probeer het eens met een while-lus uit mijn post. In de while-lus neem je dan de mysql-query op.
Tweede optie is om d.m.v. een while-lus met PHP een query te maken zoals Martijn die beschrijft (dus alle data in één query). Die ene query kun je dan uitvoeren.
-
15-05-2006, 19:29 #7
Boyd Internet Solutions
- Berichten
- 92
- Lid sinds
- 19 Jaar
kun je een klein voorbeeldje geven?
-
15-05-2006, 20:11 #8
- Berichten
- 292
- Lid sinds
- 19 Jaar
Het wordt dan (globaal zo):
Code:<?php $sInsert_data = 'INSERT INTO (naam, adres)'; for( $i = 0; $i < $iAantal_ingevuld_in_veld; $i++ ) { $sInsert_data .= sprintf( '(%s,%s)' . chr( 13 ), $naam, $adres ); } echo '<pre>' . $sInsert_data;
-
15-05-2006, 20:41 #9
- Berichten
- 173
- Lid sinds
- 19 Jaar
Je hebt toch het veld 'aantal' opgenomen als veld in je tabel? Wat moet je dan in godsnaam met nog 5x dezelfde gegevens?
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic