Avatar billede naebet Nybegynder
23. juni 2006 - 17:19 Der er 7 kommentarer og
1 løsning

Update array

Hej Jeg har lidt problemer med at få UPDATE til at virke

jeg har en form

$sql = "SELECT * FROM mintabel";
$result = mysql_query($sql) or die(mysql_error());

$display_block = "<table cellpadding=3 cellspacing=1 border=1><th>Navn</th><th>alder</th></tr>";
While ($info = mysql_fetch_array($result)){
    $id= $info['id'];
    $navn= $info['navn'];
    $alder=$info['alder'];
    $display_block .= "
<form name=test action=insert.php method=post>
<tr><td><input type='text' name='navn[]' value=$navn></td><td><input type='text' name='alder[]' value=$alder></td></tr>
<input type='hidden' name='id' value=$id>

mit script til update ser sådan her ud

$id=$_REQUEST['id'];
$arr_navn=$_REQUEST['navn'];
$arr_alder=$_REQUEST['alder'];
for($i=0;$i<sizeof($arr_navn);$i++){

  mysql_query("UPDATE mintabel SET navn='".$arr_navn[$i]."',alder='.$arr_alder[$i].' WHERE id='$id'") or die (mysql_error());

}
hvordan kommer det til at virke??
Avatar billede jakobdo Ekspert
23. juni 2006 - 17:38 #1
Den side du smider data til, prøv at start med at lav:

<?php
echo "JEG DEBUGGER<br />";
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>

Så vil du se hvordan du modtager data.
Hvis du så evt. rettede:

<tr><td><input type='text' name='navn[]' value=$navn></td><td><input type='text' name='alder[]' value=$alder></td></tr>
<input type='hidden' name='id' value=$id>

Til:

<tr><td><input type='text' name='navn[$id]' value=$navn></td><td><input type='text' name='alder[$id]' value=$alder></td></tr>

Så kunne du bruge:
foreach($_POST['navn'] $key => $value)
{
echo "ID ER: " . $key . "<br />";
echo "NAVN ER: " . $value . "<br />";
}
Avatar billede naebet Nybegynder
24. juni 2006 - 09:25 #2
hvis jeg debugger får jeg følgende
JEG DEBUGGER

Array
(
    [navn] => Array
        (
            [1] => test1
            [2] => test2
            [3] => test3
            [4] => test4
            [5] => test5
            [6] => test6
        )

    [alder] => Array
        (
            [1] => 12
            [2] => 13
            [3] => 14
            [4] => 15
            [5] => 16
            [6] => 17
        )

    [id] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
            [4] => 5
            [5] => 6
        )

    [submit] => Ret sortering
)

Det ser jo fint nok ud.

Hvor vil du sætte
foreach($_POST['navn'] $key => $value)
{
echo "ID ER: " . $key . "<br />";
echo "NAVN ER: " . $value . "<br />";
}
ind?
Avatar billede jakobdo Ekspert
24. juni 2006 - 11:04 #3
I stedet for dette:
$id=$_REQUEST['id'];
$arr_navn=$_REQUEST['navn'];
$arr_alder=$_REQUEST['alder'];
for($i=0;$i<sizeof($arr_navn);$i++){

  mysql_query("UPDATE mintabel SET navn='".$arr_navn[$i]."',alder='.$arr_alder[$i].' WHERE id='$id'") or die (mysql_error());

}

ville jeg lave:
foreach($_POST['navn'] AS $key => $value)
{
mysql_query("UPDATE mintabel SET navn='".$_POST['navn'][$key]."',alder='.$_POST['alder'][$key].' WHERE id='$key'") or die (mysql_error());
}
Avatar billede naebet Nybegynder
24. juni 2006 - 12:14 #4
Ja nu nærmer det sig noget, dog opdatere den ikke alder kan den også komme til det?
Avatar billede jakobdo Ekspert
24. juni 2006 - 12:22 #5
Det skulle den da meget gerne gøre.
Sikker på feltet hedder alder?
Avatar billede naebet Nybegynder
24. juni 2006 - 12:33 #6
der manglede lige et par "" så var den kørende takker ligger du et svar så du kan få dine velfortjente point ;-)
Avatar billede jakobdo Ekspert
24. juni 2006 - 12:38 #7
Svar!
Avatar billede jakobdo Ekspert
24. juni 2006 - 14:04 #8
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester