[PHP & SQL] Foreach waarde probleem.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een formulier waar ik een multiple keuze item heb. hier kunnen dus meerdere waardes geselecteerd worden. Welke er geselecteerd worden, wordt door middel van een array uitgelezen en daarna hernoemd naar de 'name' waarmee het in het db geschreven (insert) wordt.
code:
1
2
3
if (!isset($_POST["aquawish_voer"]) || $_POST["aquawish_voer"] ==""){$_POST["aquawish_voer"]=array();} 
foreach ($_POST["aquawish_voer"] as $aquawish_voer) 
{}


Wanneer ik echo "$aquawish_voer<br />"; tussen de laatste twee haakjes zet, schrijft hij de waardes perfect uit, maar helaas wordt alleen de laatst geselecteerde waarde in de DB gezet.
Weet iemand hoe ik dit kan oplossen, of waar ik de mist in ga.

dit is het forum onderdeel waar het om gaat
code:
1
2
3
4
5
6
7
8
9
<select name="aquawish_waterlaag" id="aquawish_waterlaag"  STYLE="width: 175px">
    <option><? echo $row[aquawish_waterlaag]; ?><option value="afblijven" disabled">-----------------------
    <option>Bovenlaag
    <option>Boven - middenlaag
    <option>Middenlaag
    <option>Midden - bodemlaag
    <option>Bodem
    <option>Overal
    </select>


En dit is de query waarmee (het is een bewerk pagina) alles naar de DB geschreven wordt.
code:
1
2
$query = "UPDATE admin_aquawish SET aquawish_naam='$aquawish_naam', aquawish_latnaam='$aquawish_latnaam', aquawish_lengte='$aquawish_lengte', aquawish_waterlaag='$aquawish_waterlaag', aquawish_temperatuur='$aquawish_temperatuur', aquawish_voer='$aquawish_voer', aquawish_sociaal='$aquawish_sociaal', aquawish_kweek='$aquawish_kweek', aquawish_overig='$aquawish_overig', aquawish_latfamilie='$aquawish_latfamilie', aquawish_nedfamilie='$aquawish_nedfamilie', aquawish_aquariumlengte='$aquawish_aquariumlengte', aquawish_stroming='$aquawish_stroming', aquawish_ph='$aquawish_ph', aquawish_gh='$aquawish_gh', aquawish_kh='$aquawish_kh', aquawish_herkomst='$aquawish_herkomst', aquawish_bericht='$aquawish_bericht' where aquawish_id = $aquawish_id"; 
    $query1 = mysql_query($query); //or die(mysql_error());

Acties:
  • 0 Henk 'm!

  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 19-08 16:06

ripperke

w00t!

code:
1
<select name="blaat[]">


en euh, </option> is redelijk verplicht imo

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ripperke schreef op zaterdag 31 december 2005 @ 08:22:
code:
1
<select name="blaat[]">


en euh, </option> is redelijk verplicht imo
Klopt. alleen lost dat het probleem niet op.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:55

MueR

Admin Tweakers Discord

is niet lief

Je code is goed, je maakt alleen 1 fout in je database. Je hebt een veld 'aquawish_voer'. Dit veld wordt door je SQL query gevuld met een waarde. Alleen wordt er niet gekeken of er al een andere waarde in staat, en wordt deze dus klakkeloos overschreven.
Je kan dit het beste oplossen door een extra tabel te maken met de velden 'aquawish_id','aquawish_voer', en daarin de waarden van aquawish_voer opslaan. Per voersoort welke geselecteerd is 1 row maken.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:55

crisp

Devver

Pixelated

nope, in HTML is de sluit-tag van het option-element optional ;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022

tombo_inc

uhuh

volgens mij is het zo dat bij een multiple select box alleen de laatst aangeklikte waarde naar de server gestuurd wordt. ik heb destijds ook zoiets gehad en heb het toen opgelost door in een javascriptje alle geselecteerde waardes uit te lezen en die te concatenaten tot een string. die naar de server te sturen en hem dan op de server weer uit mekaar te trekken. en dan alle waardes in mijn db te gooien.

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition

Pagina: 1