Avatar billede lappe_dk Nybegynder
23. maj 2005 - 15:21 Der er 13 kommentarer og
1 løsning

Rette i flere rows på én gang

Hej, jeg er ved at lave en online humidor.

Jeg har lavet humidor-opret.php, hvor man kan indsætte antal, navn osv. i tabellen humidor, så den nu indeholler flere rækker med forskellige cigarer...

Disse bliver vist på humidor.php via en while sætning.

Nu vil jeg gerne have en side, hvor man kan rette dem.
Jeg kan godt finde ud af at bruge UPDATE funktionen når jeg kun skal rette en enkelt f.ek. "UPDATE humidor SET antal = '$antal' , navn = '$navn' Where id = '$id' ", men hvordan retter man i flere rows på én gang, når man først ved, hvilke rows, der er, når de er blevet hentet ud?

Jeg vil gerne have at man på humidor-ret.php skal have en form hvor alle row udskrives, hvorefter formen fører én til humidor-ret-gem.php

Hvordan skal det laves, så den automatisk UPDATEr alle rows?

Håber I forstår mit problem...

-
PS. det er lidt svært at vide, hvor mange point, jeg bør give, da jeg ikke aner noget om sværhedsgraden af mit spørgsmål...
Avatar billede lappe_dk Nybegynder
23. maj 2005 - 16:18 #1
Lidt ligesom i en indkøbskurv, hvor man kan rette antal for alle varer i kurven og trykke på 'opdater'...
Avatar billede neess Nybegynder
23. maj 2005 - 18:43 #2
Du kan lave et array af forms elementer
< type="text" name="navn[$id]">
så kan du hente værdien ud med
$_POST["navn"][$id]
Avatar billede lappe_dk Nybegynder
23. maj 2005 - 18:49 #3
Ja, den havde jeg stort set regnet ud, men hvordan fortæller man mysql hvilke og hvor mange værdier den skal gemme, når det blev hentet dynamisk på forrige side?
Avatar billede neess Nybegynder
23. maj 2005 - 18:51 #4
Hvis du har hentet alle ud i rækkerne på siden før, opdatere du også alle rækkerne på den næste side.
Avatar billede lappe_dk Nybegynder
23. maj 2005 - 18:56 #5
Kan du ikke give et eksempel på den while sætning der skal være på humidor-ret.php

og den mysql update funktion, der skal være på humidor-ret-gem.php?

Hvis vi siger at tabellen humidor indeholder kolonnerne antal og navn
Avatar billede neess Nybegynder
23. maj 2005 - 19:00 #6
Jo 2 sec så finder jeg lige et eksempel
Avatar billede neess Nybegynder
23. maj 2005 - 19:02 #7
$resvar = mysql_query("SELECT  pk.tekst, sv.svar,sv.id from `tlm_svarpkt` sv, `tlm_tilmelding_pkt` pk WHERE sv.brugerid=$brugerid and sv.tilmeldid=$liste AND sv.tlmpkt=pk.id AND pk.pris<1");
while($rowsvar = mysql_fetch_array($resvar) )
    {
    extract($rowsvar);
    $svarfelt=$_POST['navn'][$id];
        $antal=$_POST['antal'][$id];
    mysql_query("UPDATE `tabel` set navn='$svarfelt', antal=$antal WHERE id=$id");
    }
Avatar billede neess Nybegynder
23. maj 2005 - 19:03 #8
$resvar = mysql_query("$sql");
while($rowsvar = mysql_fetch_array($resvar) )
    {
    extract($rowsvar);
    echo "<tr><td>$tekst</td><td><input name='felter[$id]' value='$svar' type='text'></td></tr> ";
    }
Avatar billede lappe_dk Nybegynder
23. maj 2005 - 19:08 #9
Damn, det ser sgu rimeligt forvirrende ud... især med alle de variabler, jeg ikke kender noget til...
Har lidt svært ved at finde hoved og hale idet...
Avatar billede lappe_dk Nybegynder
23. maj 2005 - 19:09 #10
ah, så gav det en lille smule mere mening...
Vil lige prøve at kigge på det, når min mus er blevet ladet op, og jeg har fået noget at spise :D
Avatar billede neess Nybegynder
23. maj 2005 - 20:06 #11
hvis det er den første sql sætning der forvire så er det fordi det er noget af min kode, der skal du selvfølgelig bare sætte din egen string ind.
Avatar billede lappe_dk Nybegynder
23. maj 2005 - 20:13 #12
Det er ikke fordi, jeg vil have dig til at lave mit script, men kan du ikke benytte dig af enten de variabler, som jeg skal bruge eller i det mindste nogen, der er lettere at identificere...

Jeg har meget svært ved at finde hoved og hale i alt det sv pk og alt det andet...
Avatar billede neess Nybegynder
23. maj 2005 - 20:19 #13
//din ret side
$resvar = mysql_query("SELECT * from TABEL");
while($rowsvar = mysql_fetch_array($resvar) )
    {
    extract($rowsvar);
    echo "<tr><td><input name='navn[$id]' value='$navn' type='text'></td><td><input name='antal[$id]' value='$antal' type='text'></td></tr> ";
    }

//din update side
$resvar = mysql_query("SELECT * from TABEL");
while($rowsvar = mysql_fetch_array($resvar) )
    {
    extract($rowsvar);
    $navn=$_POST['navn'][$id];
    $antal=$_POST['antal'][$id];
    mysql_query("UPDATE `tabel` set navn='$svarfelt', antal=$antal WHERE id=$id");
    }

TABEL skal du udskifte med navnet på den tabel du skal tage data fra
Avatar billede lappe_dk Nybegynder
23. maj 2005 - 20:49 #14
TUSIND TAK!
Det var meget nemmere at 'læse'.
Nu virker det.
Jeg skylder dig en bajer!
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