Avatar billede inctor Nybegynder
01. juni 2006 - 10:07 Der er 6 kommentarer og
1 løsning

Opdatere mange værdier.

Jeg har lidt kode, det er sån lidt indviklet .. Men den nemmeste måde jeg kunne finde på at lave det .. :)
Vil gerne ha at den skal opdatere de rækker hvor man har ændret nogen værdier .. Altså den skal opdatere alt sammen, med de værdier som man har indtastet, oss selvom man ikk har indtastet nogen skal den bare opdatere de rigtige rækker med de rigtige værdier, i kan vel selv gennemskue koden.. :)
<style>
a {
font-size : 10pt;
font-family : Arial, sans-serif;
color : #004080;
}
a:hover {
font-size : 10pt;
font-family : Arial, sans-serif;
color : #FFFFFF;
}
table {
font-family: Arial, sans-serif;
font-size: 10pt;
color: #000000;
}
tr.RowOverOdd {
background-color : #FFFFFF;
}
tr.RowOverEven {
background-color : #EFEFEF;
}
tr.RowOverSelected {
color : #FFFFFF;
background-color : #999999;
}
</style>
<body bgcolor="#EFEFEF">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="861" height="30" id="AutoNumber1">
<td width="71" height="23" align="center">
      <p align="left" >
      &nbsp;
      M-NR</td>
      <td width="29" height="23" align="center">
      <p align="left" >Pige</td>
      <td width="43" height="23" align="center">
      <p align="left" >Klinik</td>
      <td width="74" height="23" align="center">
      <p align="left" >
      Navn</td>
      <td width="139" height="23" align="center">
      <p align="left" >
      Hjemmeside</td>
      <td width="125" height="23" align="center">
      <p align="left" >
      Adresse</td>
      <td width="78" height="23" align="center">
      <p align="left" >
      Post-Nr</td>
      <td width="124" height="23" align="center">
      <p align="left" >
      ByNavn</td>
      <td width="74" height="23" align="center">
      <p align="left" >
      Tlf-Nr</td>
      <td width="28" height="23" align="center">
      <p align="left" >DK </td>
      <td width="20" height="23" align="center">
      <p align="left" >T</td>
      <td width="28" height="23" align="center">
      <p align="left" >
      U</td>
      <td width="19" height="23" align="center">
      <p align="left" >E</td>
      <td width="32" height="23" align="center">
      <p align="left" >S/M</td>
      <td width="35" height="23" align="center">
      <p align="left" >
      OK</td>
    <td width="0" height="23" align="center">
      <p align="left" >
      SLET</td>
    </tr>
  </table>
   
<?
mysql_connect("localhost", "root", "");
mysql_select_db("chatnet") or die('Kunne ikke vælge database');
$query=mysql_query("SELECT * FROM users");

while($show=mysql_fetch_array($query)){
echo  "<form action=\"$PHP_SELF?change=ja\" method=\"POST\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"820\" height=\"30\" id=\"AutoNumber1\">

    <tr onmouseover=\"this.className='RowOverSelected';\" onmouseout=\"this.className='RowOverEven';\">

      <td width=\"59\" height=\"23\" align=\"center\">
      <p >
      <input type=\"text\" size=\"7\" NAME=\"mnummer\" value=\"$show[id]\"></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p ><input type=\"checkbox\" NAME=\"pige\"  value=\"ON\""; if($show[pige]==ja){ echo "checked"; } echo "></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p ><input type=\"checkbox\" NAME=\"klinik\" value=\"ON\""; if($show[klinik]==ja){ echo "checked"; } echo "></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p >
      <input type=\"text\" size=\"6\" NAME=\"navn\" value=\"$show[navn]\" ></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p >
      <input type=\"text\" size=\"15\" NAME=\"webadr\" value=\"$show[website]\" ></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p >
      <input type=\"text\" size=\"15\" NAME=\"adr\" value=\"$show[adresse]\"></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p >
      <input type=\"text\" size=\"4\" NAME=\"post\" value=\"$show[pnr]\"></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p >
      <input type=\"text\" size=\"15\" NAME=\"bynavn\" value=\"$show[bn]\"</td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p >
      <input type=\"text\" size=\"8\" NAME=\"tlf\" value=\"$show[tlr]\"></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p ><input type=\"checkbox\" NAME=\"dansk\" value=\"ON\""; if($show[dk]==ja){ echo "checked"; } echo "></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p ><input type=\"checkbox\" NAME=\"thai\" value=\"ON\""; if($show[thai]==ja){ echo "checked"; } echo "></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p >
      <input type=\"checkbox\" NAME=\"udenl\" value=\"ON\""; if($show[ul]==ja){ echo "checked"; } echo "></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p ><input type=\"checkbox\" NAME=\"escort\" value=\"ON\""; if($show[escort]==ja){ echo "checked"; } echo "></td>
      <td width=\"59\" height=\"23\" align=\"center\">
      <p ><input type=\"checkbox\" NAME=\"sm\" value=\"ON\""; if($show[sm]==ja){ echo "checked"; } echo "></td>
      <td width=\"60\" height=\"23\" align=\"center\">
      <p >
      <input type=\"checkbox\" NAME=\"godkendt\" value=\"True\""; if($show[godkendt]==ja){ echo "checked"; } echo "></td>
    <td width=\"60\" height=\"23\" align=\"center\">
      <p >
      <input type=\"checkbox\" NAME=\"slet\" value=\"$show[id]\"></td>
      </tr>
  </table>
</div>
";
}echo "
<input type=\"submit\" name=\"change\" value=\"Opdater\">
</form> "; ?>

Hvorn gøres det nemmest ?
Avatar billede jakobdo Ekspert
01. juni 2006 - 12:30 #1
Hvis du retter: NAME=\"navn\" til: NAME=\"navn[".$show['id']."]\"
Så vil alle felter blive postet til din action side.
Prøv at ret alle inputs som angivet herover.
Og tryk submit.
I toppen af action siden, laver du så:
echo '<pre>';
print_r($_POST);
echo '</pre>';

Så kan du se hvad der bliver sendt.
Avatar billede inctor Nybegynder
01. juni 2006 - 14:16 #2
Output er:
Array
(
    [mnummer] => 124
    [navn] => Array
        (
            [1] => Mads
            [3] => Ikke oplyst
            [2] => Ikke oplyst
            [100] =>
            [5] => Ikke oplyst
            [6] => Ikke oplyst
            [117] =>
            [115] => mads
            [116] => Mads
            [118] =>
            [119] => mads
            [120] => Mads
            [121] => Mads
            [122] => Mikkel
            [123] =>
            [124] => s
        )

    [webadr] => s
    [adr] =>
    [post] =>
    [bynavn] =>
    [tlf] =>
    [slet] => 5
    [change] => Opdater
)

Kan jeg ikk få sat den op så jeg kan se hvilke, ID'erne , om de skal slettes osv ..
Avatar billede inctor Nybegynder
01. juni 2006 - 16:35 #3
FOrstår ikk så meget af det der, vil gerne ha det stilt op i en tabel nedunder, hvor der står i hvilke værdier der er ændret, og om hvilke brugere som skal slettes osv...
Avatar billede jakobdo Ekspert
02. juni 2006 - 07:51 #4
Det er jo ikke kun på feltet NAME=\"navn\" du skal lave: [".$show['id']."]
Det skl du også på:
NAME=\"mnummer[".$show['id']."]\"
NAME=\"webadr[".$show['id']."]\"
NAME=\"adr[".$show['id']."]\"
NAME=\"post[".$show['id']."]\"
NAME=\"bynavn[".$show['id']."]\"
NAME=\"tlf[".$show['id']."]\"

Det med at slette kan du lave som en checkbox:

<input type=\"checkbox\" NAME=\"slet[".$show['id']."]\">
Avatar billede inctor Nybegynder
03. juni 2006 - 12:46 #5
Jaa .. Nu viser den det .. :) Hvorn kan jeg lave det om t en Update i en SQL streng .. ? Ved ikk hvorn : print_r($_POST) Laves om til en Update .. :S
Avatar billede jakobdo Ekspert
06. juni 2006 - 08:24 #6
Det skal du så gøre ved at løbe arrayet igennem.
Du kunne f.eks. gøre sådan:
foreach($_POST['navn'] as $key => $value)
{
echo "KEY : " . $key . "<br />"; //Key er ID på den række som skal opdateres.
}

Så skal du bare have fat i $_POST['mnummer'][$key] osv. hele rækken igennem.
Avatar billede inctor Nybegynder
01. maj 2010 - 21:27 #7
Jeg lukker.
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