/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
indsæt af flere values..
Fra : steen broelling


Dato : 05-09-01 08:41

Hej...

Jeg har følgende i en fil, som skal indsætte flere values i en tabel i
mySQL.

Her min query til indsæt:

$query = mysql_query("INSERT INTO dkartersteen (art_id) VALUES ('$art')");

Og her min tabel, hvori jeg kan afmærke de felter (arter), som skal
indsættes:

while($row = mysql_fetch_array($query))

{
$id = $row["id"];
$art = $row["art"];
$latin = $row["latin"];
$su = $row["SU"];

   if ($row["SU"]==0)
   {
   echo "<tr><td width=\"50%\" align=\"left\">$art (<i>$latin</i>)</td>";
   echo "<td align=\"left\"><input type =\"checkbox\" name=\"art\" value=\"$id\"></td></tr>";
   }
   else
   {
   echo "<tr><td width=\"50%\" align=\"left\"><font color=\"#B5A28C\">*$art (<i>$latin</i>)</font></td>";
   echo "<td align=\"left\"><input type =\"checkbox\" name=\"art\" value=\"$id\"></td></tr>";
   }
}   

Problemet er blot, at der kun bliver indsat en value, selvom jeg har
afmærket adskillige arter.

Hvordan får jeg querien til at indsætte alle afmærkede (checkboxede)
values!??

MVH Steen Brølling
--
ego <http://www.broelling.dk>
birdland <http://www.vejlerne.dk>
::your eyes - it's a days work, just looking into them::


 
 
Thomas Lindgaard (05-09-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 05-09-01 11:02

Davs

For at sætte flere rækker ind i en tabel bliver du nødt til at køre en
løkke, som løber dine checkbokse igennem og indsætter noget, hvis de er
markerede.

Du kan definere dine checkbokse som følgende:
<input type =\"checkbox\" name=\"art[]\" value=\"$id\"> (bemærk de skarpe
parenteser i name-attributten)

På den måde vil PHP opbygge et array ved navn art indeholdende værdierne af
de markerede checkbokse, som du siden kan løbe igennem:
for ($i = 0; $i < count($art); $i++) {
mysql_query("INSERT INTO dkartersteen (art_id) VALUES ('$art[$i]')");
}

Var det hvad du spurgte om?
/Thomas



steen broelling (05-09-2001)
Kommentar
Fra : steen broelling


Dato : 05-09-01 11:38

Hej igen...

On Wed, 5 Sep 2001 12:01:33 +0200
"Thomas Lindgaard" <thomas@dnspilot.com> wrote:

> For at sætte flere rækker ind i en tabel bliver du nødt til at køre en
> løkke, som løber dine checkbokse igennem og indsætter noget, hvis de er
> markerede.
>
> Du kan definere dine checkbokse som følgende:
> <input type =\"checkbox\" name=\"art[]\" value=\"$id\"> (bemærk de skarpe
> parenteser i name-attributten)
>
> På den måde vil PHP opbygge et array ved navn art indeholdende værdierne af
> de markerede checkbokse, som du siden kan løbe igennem:
> for ($i = 0; $i < count($art); $i++) {
> mysql_query("INSERT INTO dkartersteen (art_id) VALUES ('$art[$i]')");
> }
>
> Var det hvad du spurgte om?

Ja det tror jeg nu nok det var, selvom det ikke lige virker :)

Nu ser min query sådan ud:
<?
if ($submit)
{
   for ($i = 0; $i < count($art); $i++) {
   $query = mysql_query("INSERT INTO dkartersteen (art_id) VALUES ('$art[$i]')");
   }
}
?>

Og min table sådan ud:
<?
$query=mysql_query("SELECT * FROM dkarter ORDER BY art ASC");

while($row = mysql_fetch_array($query))

{
$id = $row["id"];
$art = $row["art"];
$latin = $row["latin"];
$su = $row["SU"];

   if ($row["SU"]==0)
   {
   echo "<tr><td width=\"50%\" align=\"left\">$art (<i>$latin</i>)</td>";
   echo "<td align=\"left\"><input type =\"checkbox\" name=\"art[]\" value=\"$id\"></td></tr>";
   }
   else
   {
   echo "<tr><td width=\"50%\" align=\"left\"><font color=\"#B5A28C\">*$art (<i>$latin</i>)</font></td>";
   echo "<td align=\"left\"><input type =\"checkbox\" name=\"art[]\" value=\"$id\"></td></tr>";
   }
}   

?>

Der går stadig kun en value ind i tabellen. Mærkeligt.....

Steen
--
ego <http://www.broelling.dk>
birdland <http://www.vejlerne.dk>
::your eyes - it's a days work, just looking into them::


Thomas Lindgaard (05-09-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 05-09-01 11:47

Davs davs

> Ja det tror jeg nu nok det var, selvom det ikke lige virker :)

Øv.

Prøv evt. at skrive art-arrayet ud (med print_r($art)) for at se om det
indeholder alle de værdier, du krydser af...

/Thomas



steen broelling (05-09-2001)
Kommentar
Fra : steen broelling


Dato : 05-09-01 12:10

Hej

On Wed, 5 Sep 2001 12:46:34 +0200
"Thomas Lindgaard" <thomas@dnspilot.com> wrote:

> Øv.
>
> Prøv evt. at skrive art-arrayet ud (med print_r($art)) for at se om det
> indeholder alle de værdier, du krydser af...

Hmmm. Mærkeligt. Nu virker det altså lige pludseligt efter din anvisning
fra før, uden at jeg så meget som har rørt ved noget.
Nå men det var fedt - og TAK :)

MVH Steen
--
ego <http://www.broelling.dk>
birdland <http://www.vejlerne.dk>
::your eyes - it's a days work, just looking into them::


Thomas Lindgaard (05-09-2001)
Kommentar
Fra : Thomas Lindgaard


Dato : 05-09-01 13:59

> Nå men det var fedt - og TAK :)

Jow, og det var så lidt.

/Thomas




Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste