Gå til innhold

foreach og legge inn i database problemer


Anbefalte innlegg

Jeg har kommet til ett lite problem som jeg ikke får helt til.

 

echo "<input type='hidden' name='score[]' value='|' /><br />";
	    echo "<input type='number' name='score[]' value='1' min='1' max='20' /><br />";
foreach ($score as $value)
  if ($mysqli->query("INSERT INTO score (score,uke,dato,sted,bruker_id) VALUES ('$value','$uke','$dato','$sted','$bruker_id')"))

 

Det kan feks være 10 score[] fra $_POST['score'] og jeg skal legge den inn i databasen som en linje og ikke bare første tallet.

 

Tallet skal bli slik feks: |1|2|3|4|5|6

Lenke til kommentar
Videoannonse
Annonse

En vanlig løsning er å skjøte sammen strenger så du slipper å gjøre flere spørringer mot databasen:

 

$query = 'INSERT INTO score (score, uke, dato, sted, bruker_id) VALUES ';

foreach ($score as $value)
{
$query .= "('{$value}', '{$uke}', '{$dato}', '{$sted}', '{$bruker_id}'), ";
}

 

Det er også mulig å sjekke ut funksjonalitet som MySQLi::multi_query(). Den tillater deg å gjøre flere CRUD-operasjoner i motsetning til MySQLi::query().

Endret av Sono Juventino
Lenke til kommentar

Men vill han ikke loop den der og legge til 1 og 1 der?

 

Du kan blandt annet bruke implode funksjonen. Her er et eksempel som passer til oppsettet ditt:

<?php
$score = $_POST['score'];
$score = implode('|', $score);
echo 'Du valgte: ' . $score . '<br>';
?>
<br>
<form method="post">
<?php
/** gennerer noen random checkboxer **/
for($i = 1; $i <= mt_rand(5,15); $i++)
 echo 'Val ' . $i . ' <input type="checkbox" name="score[]" value="' . $i . '"><br>';
?>
<input type="submit" name="submit" value="test">
</form>

$score er nå ferdig formatert "tall|tall|tall".. Slik at du kan bruke den i sql-spørringen din. Du burde også sjekke om inputene faktisk er et tall.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...