Lagre nye data i eksisterende linje

Her kan du få hjælp og stille spørgsmål til MySQL/MySQLi!
Besvar
supermario
Entusiast
Entusiast
Indlæg:32
Tilmeldt:22. feb 2012, 19:28
Geografisk sted:Danmark
Kontakt:
Lagre nye data i eksisterende linje

Indlæg af supermario » 23. apr 2012, 09:05

Hej

Jeg har problemer at gemme data i en eksisterende mySQL.

Jeg har lavet en side som slutter med at man trykker på Submit. Når dette gøres oprettes der en linje i mySQL med de korrekte data (her er stadig tomme felter uden værdi).

På næste side ønsker jeg at kunne trykke på Submit igen og der skal lagres flere data i samme ”linje” i mySQL.

Når jeg trykker på Submit-knappen på side 2, laver den en ny linje hvor brugernavnet er blank.

Se evt. min side her: http://www.hvoribyen.dk/em

Har gennemset alle videoerne men synes ikke at der er noget der beskriver dette. Jeg ønsker jo ikke at rette noget tidligere indtastet.
Ønsker heller ikke at brugeren skal indtaste sit brugernavn igen.


Venlig hilsen
Peter

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Lagre nye data i eksisterende linje

Indlæg af ThomasI » 24. apr 2012, 09:10

Hvordan ser din php kode ud på din anden side? - Det er lidt svært at hjælpe når vi ikke kan se din kode...

Husk at du skal bruger "INSERT WHERE" til at indsætte i samme række som brugeren før...

supermario
Entusiast
Entusiast
Indlæg:32
Tilmeldt:22. feb 2012, 19:28
Geografisk sted:Danmark
Kontakt:

Re: Lagre nye data i eksisterende linje

Indlæg af supermario » 24. apr 2012, 21:38

Selvfølgelig. Jeg var i tvivl om, om det var nødvendigt.

PHP side 1:

Kode: Vælg alt

[color=#FF0000]$data = mysql_query("SELECT * FROM embud WHERE navn='$navn'") or die(mysql_error());[/color]

PHP side 2:

Kode: Vælg alt

[color=#FF0000]if (isset ($_POST['update']))  {        

    $navn = $_POST['navn'];
    $email = $_POST['email'];
    $kvartfinaleet = $_POST['kvartfinaleet'];
    $kvartfinaleto = $_POST['kvartfinaleto'];
    $kvartfinaletre = $_POST['kvartfinaletre'];
    $kvartfinalefire = $_POST['kvartfinalefire'];
    $semifinaleet = $_POST['semifinaleet'];
    $semifinaleto = $_POST['semifinaleto'];
    $finalevinder = $_POST['finalevinder'];        
    
    $tabeldatato = "INSERT INTO embud (kvartfinaleet, kvartfinaleto, kvartfinaletre, kvartfinalefire, semifinaleet, semifinaleto, finalevinder) VALUES 
    ('$kvartfinaleet','$kvartfinaleto','$kvartfinaletre','$kvartfinalefire','$semifinaleet','$semifinaleto','$finalevinder')";
    
    // $tabeldatato = "UPDATE embud SET kvartfinaleet = '$kvartfinaleet' WHERE navn ='$navn'";                                            <----- Har forsøgt med dette, men virkede ikke
    
    $resultatto = mysql_query($tabeldatato);          
    if($resultatto) {       
    echo "Dit bud er blev registreret <br/>";
}
else {
    echo "Fejl";
}
}   
else {
   echo "Du trykkede ikke på næste"; 
}                 

// --------------- Vis data -----------------------------------------------------------------

$data = mysql_query("SELECT * FROM embud WHERE navn='$navn'") or die(mysql_error());          /* Vælg alle data fra tabel */

while ($info = mysql_fetch_array($data))  
   {
echo "Navn: " . $info['navn'] . "<br/>";  
echo "E-Mail: " . $info['email']. "<br/><br/>";
   }
   
//mysql_close();  
?>                       [/color]
Men det er som om at den ikke kan 'huske' $navn, da den værdi jo kun indtastes på første side. så opretter den bare en ny linje i mySQL hvor navn er blank.

Venlig hilsen
Peter
(Håber at det er forståeligt)

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: Lagre nye data i eksisterende linje

Indlæg af Daniel » 24. apr 2012, 23:37

Husk lige en anden gang når du skriver kode at sætte det mellem

Kode: Vælg alt

, gør det lidt mere overskueligt. ;)

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Lagre nye data i eksisterende linje

Indlæg af ThomasI » 25. apr 2012, 15:08

Du kan ikke bruge den samme POST variable på en ny php side. Hvis du ikke har en form som sender navnet til din 2. php side så er det klart at din navne variabel er tom...

Hvis du vil bruge det samme navn på den næste side kan du indsætte den i din form automatisk via php:

Kode: Vælg alt

<input type="text" name="navn" value="<?php echo '$_POST['navn']'; ?>" />
Dette forudsætter self at man i formen forinden har intastet i feltet "navn" og at det så bliver sendt videre til den næste side i en POST variabel

På den her måde vil den 2. form på din 1. php side sende navnet fra den første form videre til den 2. php side...

Besvar