26. august 2006 - 12:37Der er
15 kommentarer og 1 løsning
Hent data og ret data
Hey Jeg har en side hvor brugeren har uploadet lidt information om sig selv. Efter at denne har logget ind med password og unik brugernavn fået en menu. I denne menu er der funktionen "opret din profil". Nu vil jeg altså gerne tilføje en funktion der gør følgende:
Ved klik på knappen "ret", skal brugeren have mulighed for at rette i de informationer, denne allerede har uploaded - altså i sin profil.
Jeg er lidt på bar bund, men jeg skal vel først kalde profilen frem.. og... ???? :-) Hjælp....
Derefter laver du en form, med de forskellige ting du ville have ændret, hvor du sætter value=$navn , f.eks.
Så kan brugeren kun ind og ændre dem, hvor du så slutter af med en update knap og en update funktion som ikke er meget forskellig fra den du bruger når du insætter et navn.
Update brugere set navn=$navn where brugernavn=$bruger
Håber du forstår eller skal jeg nok smide lidt linjer med kode :D
*Stavningen var ikke så god der snakkede lige telefon imens*
Men generalt er det det samme som du har lavet når du opretter en bruger på nær at du nu skal have en update funktion i stedet for en insert, samt at du skal bruge value i formen så folk kan se hvad der står i forvejen og så gå ind og rette det :D
Jeg er lidt usikker... Jeg har fx en information der hedder navn - altså navnet på brugeren. Lad os antage at brugeren har skrevet sit navn forkert, og det vil brugeren jo nok gerne rette.
Jeg kalder derfor navnet frem ved at oprette forbindelse til table osv. og viser hvad brugeren hidtil har indtastet med: echo $row[navn];
Men hvordan gør det det muligt for brugeren at rette i sit navn? Du nævner noget med value. Er det: value='$row[navn]';
Hvis du forstiller dig at du har form på rettesiden, med de ting han kan rette så har du f.eks. <input type="text" name="navn" id="navn" value="<?php echo "$row[navn]"; ?>" />
Så vil han se sit navn og ændre i det og så skal du sådan set bare lave den lave den update funktion. Så når han ændrer det og trykker update så ændrer det hans navn.
Du gør det muligt med den UPDATE funktion som jeg snakkede om.
Ligesom du dengang de blev oprettet havde en INSERT funktion: mysql_query("INSERT..... //etc
så skal du lave en UPDATE funktion denne gang mysql_query("UPDATE...../etc UPDATE gør at den opdatere hans navn med det han har ændret det til.
Men jeg kan ikke få scriptet til at hente informationerne????
Jeg har lavet funktionen: WHERE design='$_GET[design]'") or die(mysql_error()); ... når jeg trykker på knappen "ret", så bliver det netop den designers profil der er logget ind, der bliver hentet... jeg går ud fra at det virker - det gør det på de andre sider.
$updateSQL = sprintf("UPDATE tabel SET design=%s, navn=%s, adresse=%s, postnr=%s WHERE ID=%s", $_POST['design'], $_POST['navn'], $_POST['adresse'], $_POST['postnr'], $_POST['ID']); mysql_select_db($db, $conn); $Result1 = mysql_query($updateSQL, $conn) or die(mysql_error());
Hust lige at oprette en form med felterne design, navn, adresse, postnr. Hvis du kalder siden selv med action=<?php echo $PHP_SELF ?>, så skal du sætte ovenstående ind i en if-sætning, fx ved at du opretter et hidden field på formen, og laver en sætning sådan ca som denne:
if ((isset($_POST['dataok'])) && ($_POST['dataok']=='sat')) { /* ovennævnte udatesekvens */ }
Hidden feltet skal så hedde dataok med en value="sat"
^^[tilføjelse] På de andre felter i formen sætter du value til dets pendant i db. fx <input type="Text" name="design" value="<?php echo $row['design']; ?>"> Så står de nuværende værdier i formen når den åbnes, og ikke ændrede felter gemmes uskadte...
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.