Avatar billede jjdk Nybegynder
28. januar 2007 - 14:33 Der er 4 kommentarer og
1 løsning

Liste MySQL-poster og rette i flere felter samtidig

Hej.
Jeg har en MySQL-tabel, "bruger", hvor der er 10 poster.
Hver post har bl.a. 2 felter "km-sats" og "time-sats"
De 10 poster vil jeg gerne have listet i en form, så jeg kan rette i de 2 felter "km-sats" og "time-sats".
Altså jeg skal kunne rette alle satser i samme form og gemme det hele ved 1 tryk.
Nogen der kan bidrage med eksempler, som jeg kan tage udgangspunkt i.
Avatar billede showsource Seniormester
28. januar 2007 - 15:07 #1
Du skal et felt i din tabel som referer til netop det ene row.
F.eks. et "autoincrement, primary" felt, typisk kaldet id

Har du det, kan du bruge [] i navnet på formfelterne, så får du et array at bruge

while($vis = mysql_fetch_array($sql))
{
?>
<input type="text" name="km[<?php echo $vis["id"]; ?>]" value="<?php echo $vis["km"]; ?>"> <input type="text" name="time[<?php echo $vis["id"]; ?>]" value="<?php echo $vis["time"]; ?>">
<?php
}


    if(isset($_POST["km"], $_POST["time"]) && is_array($_POST["km"]) && is_array($_POST["time"])) {

        foreach($_POST["km"] as $key => $value) {
        $sql = "UPDATE `tabel` SET `km` = '". $_POST["km"][$key] ."' , `time` = '". $_POST["time"][$key] ."' WHERE `id` = ". intval($key);
        mysql_query($sql) or die (mysql_error());
        }

    }

så'n ca.
Avatar billede jjdk Nybegynder
28. januar 2007 - 15:24 #2
Jo - tak, det hjalp mig en hel del. Jeg har nu tilrettet koden jf. nedenfor, men hvordan opdaterer jeg koden. Skal der ikke et link/knap til eller lignende??


<?php require '../head.php';?>
<?
$sql = mysql_query("SELECT * FROM kalender_user");
while($vis = mysql_fetch_array($sql))
{
?>
<input type="text" name="satskm[<?php echo $vis["id"]; ?>]" value="<?php echo $vis["satskm"]; ?>">
<input type="text" name="satstime[<?php echo $vis["id"]; ?>]" value="<?php echo $vis["satstime"]; ?>">
<br>
<?php
}
    if(isset($_POST["satskm"], $_POST["satstime"]) && is_array($_POST["satskm"]) && is_array($_POST["satstime"])) {

        foreach($_POST["satskm"] as $key => $value) {
        $sql = "UPDATE kalender_user SET `satskm` = '". $_POST["satskm"][$key] ."' , `satstime` = '". $_POST["satstime"][$key] ."' WHERE `id` = ". intval($key);
        mysql_query($sql) or die (mysql_error());
        }

    }
?>
Avatar billede jjdk Nybegynder
28. januar 2007 - 17:50 #3
Så har jeg det kørende. Tak for hjælpen. Sender du lige et svar.
Avatar billede showsource Seniormester
13. februar 2007 - 08:32 #4
Ellers tak, ønkser ikke point. Tag dem selv
Avatar billede jjdk Nybegynder
13. februar 2007 - 09:38 #5
Så siger jeg da endnu mere tak. :-))
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