Avatar billede clausberg Nybegynder
26. august 2006 - 12:37 Der 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....
Avatar billede nicocarlos Nybegynder
26. august 2006 - 12:44 #1
Smider du informationen i mysql?
Avatar billede clausberg Nybegynder
26. august 2006 - 12:45 #2
sorry.... ja, de bliver smidt i mysql med php
Avatar billede nicocarlos Nybegynder
26. august 2006 - 13:03 #3
ja først henter du informationen fra brugeren.

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
Avatar billede nicocarlos Nybegynder
26. august 2006 - 13:08 #4
*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
Avatar billede clausberg Nybegynder
26. august 2006 - 13:33 #5
Perfekt.. jeg tester lige...
Avatar billede clausberg Nybegynder
26. august 2006 - 16:54 #6
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]';
Avatar billede nicocarlos Nybegynder
26. august 2006 - 17:00 #7
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.
Avatar billede clausberg Nybegynder
26. august 2006 - 18:12 #8
Jeg har følgende:

<?php
$conn = mysql_connect("xxx", "xxx", "xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());

$result = mysql_query("SELECT * FROM bruger
WHERE design='$_GET[design]'") or die(mysql_error()); 

echo "<table align='center' border='0' cellspacing='0' cellpadding='0'>";
while($row = mysql_fetch_array( $result )) {
echo "<tr><td>";
<input type="text" name="navn" id="navn" value="<?php echo "$row[navn]"; ?>" />
echo "</td><td>";
<input type="text" name="adresse" id="adresse" value="<?php echo "$row[adresse]"; ?>" />
echo "</td></tr>";
}
echo "</table>";
?>

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.
Avatar billede clausberg Nybegynder
26. august 2006 - 19:46 #9
Jeg har lige en æÆndring. Med dette script kan jeg nu hente de informationer frem, som den bruger der netop har logget sig ind, har uploaded.

<?php
$conn = mysql_connect("xxxx", "xxx", "xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());

$result = mysql_query("SELECT * FROM bruger
WHERE design='$_GET[design]'") or die(mysql_error()); 

echo "<table border='1'>";
echo "<tr><td>design</td>";
echo "<td>navn</td>";
echo "<td>adresse</td>";
echo "<td>postnr</td></tr>";

while($row = mysql_fetch_array( $result )) {
    echo "<tr><td>";
    echo $row['design'];
    echo "</td><td>";
    echo $row['navn'];
    echo "</td><td>";
    echo $row['adresse'];
    echo "</td><td>";
    echo $row['postnr'];
    echo "</td></tr>";
    echo "<tr><td height='5'></td></tr>";
}
echo "</table>";
?>

Kan du ikke prøve at tage udgangspunkt i dette srcipt og vise mig, hvordan man skriver update ind. Update funktionen er ret ny for mig :-)
Avatar billede clausberg Nybegynder
26. august 2006 - 20:10 #10
Jeg har forsøgt at rette i echo linierne udfra det du sagde:
echo '<input type="text" name="design" value="' .echo $row[design].'">';

men kan ikke få det til at fungere.
Avatar billede clausberg Nybegynder
26. august 2006 - 21:00 #11
Ok.. nu fik jeg det til at virke med følgende:
echo '<input type="text" name="design" value="'.$row[design].'">';

dvs. nu kan jeg rette i mine informationer, men jeg har endnu ikke helt forstået hvordan jeg skal update dem
Avatar billede yHec Novice
27. august 2006 - 02:51 #12
Du mangler en update-sætning.

$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"

Det burde virke

/y
Avatar billede yHec Novice
27. august 2006 - 02:53 #13
^^[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...

/y
Avatar billede clausberg Nybegynder
27. august 2006 - 11:51 #14
Jeg tester lige...
Avatar billede clausberg Nybegynder
03. september 2006 - 13:19 #15
Jeg har fundet ud af det - så smid begge point :-)
Avatar billede yHec Novice
03. september 2006 - 20:51 #16
svar
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