Begrijp ik het goed dat je de regels van het textvak apart wilt opslaan in de db?
Link gekopieerd
Text splitsen op " \n " or " </br> "
Als goed is kan dat met explode()
Link gekopieerd
@mark moes: ja ik wil graag elke input veld opslaan in de db. Maar wel 1 regel in 1 x
Dus:
onderwerp, locatie en omschrijving zijn 3 losse items maar moeten wel als 1 regel worden weergegeven in de database, dus dat ze 1 id hebben.
En dit moet zich herhalen voor elke regel dus 8 x in mijn geval.
Link gekopieerd
ik zie dat dus zo:
<?php
mysql_query("INSERT INTO tabel WHERE id, onderwerp, locatie, beschrijving VALUES '','".mysql_real_escape($_POST['onderwerp'])."','".mysql_real_escape($_POST['locatie']).'",'".mysql_real_escape($_POST['beschrijving'])."'");
?>
en dat gewoon in een loopie waarin je kijkt of er gepost is, en dan elke keer deze query
Link gekopieerd
Heb je een voorbeeld met een loopie?
En waar voor dient die mysql_real_escape??
Link gekopieerd
Als ik het goed begrijp wil je dit of zo iets.
<?php
function opslanInTb($onderwerp, $locatie, $omschrijving){
mysql_query("INSERT INTO tabel (onderwerp, locatie, beschrijving) VALUES ('". mysql_real_escape($_POST['onderwerp']) ."',
'". mysql_real_escape($_POST['locatie']) ."',
'". mysql_real_escape($_POST['beschrijving']) ."')");
}
if (isset($_POST['submit'])){
for ($i=0; $i < 8; $i++){
if ($_POST["onderwerp". $i] !="" AND $_POST["locatie". $i]!="" AND $_POST["omschrijving". $i] != "")
opslanInTb($_POST["onderwerp". $i], $_POST["locatie". $i], $_POST["omschrijving". $i]);
}
}
echo '<table border="1">';
echo '<form name="test" method="post" action="'. $_SERVER['PHP_SELF'] .'">';
for ($i=0; $i < 8; $i++){
echo '<tr>';
echo '<td><input type="text" name="onderwerp'. $i .'" /></td>';
echo '<td><input type="text" name="locatie'. $i .'" /></td>';
echo '<td><textarea cols="20" rows="4" name="omschrijving'. $i .'"></textarea></td>';
echo '</tr>';
}
echo '<tr>';
echo '<td ><input type="submit" name="submit" value="verzenden"/></td> ';
echo '</tr>';
echo '</form></table>';
?>
Link gekopieerd
jah idd, dit is inderdaad wat ik wil. Maar kan dit ook met een foreach of is dit de enigste oplossing?
Link gekopieerd
Hmmm natuurlijk
Een lus blijf een lus
Alleen alle lus heb zijn eigen extra mogelijkheden
<?php
$i= 0;
foreach ($i < 8){
if ($_POST["onderwerp". $i] !="" AND $_POST["locatie". $i]!="" AND $_POST["omschrijving". $i] != "")
opslanInTb($_POST["onderwerp". $i], $_POST["locatie". $i], $_POST["omschrijving". $i]);
$i++;
}
?>
Link gekopieerd
Kan ook met foreach:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($_POST['naam'] as $key => $value)
{
echo $_POST['naam'][$key] . ' | ' . $_POST['email'][$key] . ' | ' . $_POST['adres'][$key] . '<br />';
}
}
else
{
echo '<form method="post">';
for($i=0; $i<8; $i++)
{
echo '<input type="text" name="naam[' . $i . ']" /> | ';
echo '<input type="text" name="email[' . $i . ']" /> | ';
echo '<input type="text" name="adres[' . $i . ']" /><br />';
}
echo '<br /><input type="submit" name="submit" value="Opslaan" />';
echo '</form>';
}
?>
Link gekopieerd
Alleen begint jou for-loop bij 0 :)
Link gekopieerd