Avatar billede avminarm Juniormester
23. oktober 2003 - 10:10 Der er 7 kommentarer og
1 løsning

opdatere flere id's på én gang

Hvis nu jeg har en DB med f.eks struktur:

CREATE TABLE liste (
    id int(10) unsigned NOT NULL auto_increment,
    navn varchar(255) NOT NULL,
    kommentar varchar(255) NOT NULL,
    oplys1 int(10) unsigned DEFAULT '0' NOT NULL,
    oplys2 int(10) unsigned DEFAULT '0' NOT NULL,
    oplys3 int(10) unsigned DEFAULT '0' NOT NULL,
    PRIMARY KEY (id)
  );

når jeg så henter alle rækker frem fra tabellen i en formular så det fremkommer på en nogenlunde sådanher måde (illustrativt):

<form method="post" action="do.php">

id(1) - navn - kommentar - oplysn1 - oplysn2 - oplysn3
id(2) - navn - kommentar - oplysn1 - oplysn2 - oplysn3
id(3) - navn - kommentar - oplysn1 - oplysn2 - oplysn3

osv op til ca. 30 - 50 rækker
<submit>
</form>

alle oplysn felterne skal her kunne opdateres på en gang ved tryk på submit knappen- dvs de står som input felter med name="oplysn1" osv.

SPØRGSMÅL:
hvordan sikrer jeg at jeg opdaterede de rigtige id's ??? - når jeg opdaterer så mange rækker på én gang??
Avatar billede amix Nybegynder
23. oktober 2003 - 12:01 #1
Ved at du opdatere alle id's?
Altså det vil være åndsvagt at teste hver eneste input boks og sammenlign den med databasen... Bare min mening - Så opdatere alle felterne, det er hurtigst :]
Avatar billede avminarm Juniormester
23. oktober 2003 - 12:09 #2
det er lige det jeg vil = opdatere alle felterne på en gang - jeg vil ikke sammenligne med databasen - mit problem er at oplysningerne for hvert id er forskellige (håber du forstår) - hver række skal altså opdateres.
Avatar billede amix Nybegynder
23. oktober 2003 - 12:44 #3
Hvor meget har du selv lavet?
Dvs. skal du både have lavet formen og php-koden til at opdatere databasen?
Avatar billede avminarm Juniormester
23. oktober 2003 - 13:03 #4
nej nej - jeg skal ikke have lavet noget kode ;o) - det er mere princippet - jeg kan sagtens selv kode (PHP/SQL/HTML)  - jeg er bare "gået kold" i dette lille problem. - så hvis du har løsningen - kan du bare beskrive hvordan eller lave et simpelt eksempel.
Avatar billede amix Nybegynder
23. oktober 2003 - 20:34 #5
Ok det du skal gøre er en loop som løber gennem og opdatere hele databasen.
Denne loop kunne se ud som:

for($i=1; $i <= 40; $i++) {
her inden har du så $i, som er 1,2,3,4,5
herved kan du f.eks. gøre det således
$sql = "UPDATE tabel SET oplys$i='".$_POST['oplysn'.$i.'']."' WHERE id=$i"
}

Dette er meget simpelt, men det virker. Dog skal du have et system i dine form inputs for sådan en løsning, men det skulle ikke være noget problem at få det.
Avatar billede avminarm Juniormester
23. oktober 2003 - 22:06 #6
hvad så hvis der er slettede id's i DB f.eks id nr. 3 ikke eksisterer mere?
Avatar billede avminarm Juniormester
17. november 2003 - 22:24 #7
jeg tror jeg skal have fat i noget med et flerdimensionelt array - du får 20 p for din ulejlighed hvis du smider et svar
Avatar billede avminarm Juniormester
27. januar 2004 - 13:56 #8
så lukker jeg ;o)
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