Avatar billede starf Nybegynder
21. juni 2012 - 12:05 Der er 5 kommentarer og
1 løsning

php - load fra database ind i text form.

Jeg vil gerne lave en side der loader indholdet fra en database, ind i en text form, så jeg kan ændre det der står og gemme. Jeg har lavet noget kode, der viser alt indholdet i databasen, spørgsmålet er så hvordan jeg kan sende mit "id" vidre til en edit side, der så loader det fra databasen fra id = xx, nogle der kan peje mig i den rigtige retning?

Her er det kode der viser indholdet fra min database:
http://pastebin.com/TDHLWrMm
Avatar billede KHHP Juniormester
21. juni 2012 - 12:21 #1
Du kan lave en form således:
<?php
                    $id = $_GET['id'];

                    $sql_indhold = "SELECT * FROM content WHERE id='$id'";

                    $query_indhold = mysql_query($sql_indhold);

                    $indhold = mysql_fetch_assoc($query_indhold);
                    ?>

                    <form action="opdater.php" method="post" name="opret">
                        <p>Overskrift: <input type="text" name="heading" value="<?php echo $indhold['titel']?>" /></p>
                        <p>Indhold:<br />
                        <textarea name="tekst"><?php echo $indhold['tekst']?></textarea></p>
                        <input type="hidden" name="id" value="<?php echo $id;?>" />
                        <input name="submit" type="submit" value="Gem" />
                        <input type="button" name="tilbage" value="Tilbage" onClick="window.location.href='../index.php'" />
                    </form>

Dit link hvor du kommer til denne side, lav et link således:
<?php
echo '<a href="admin/rediger.php?id='.$id.'">Rediger side</a>';
?>

For så at opdatere dit indhold, kan du bruge denne kode:
<?php
include '../includes/connect.php';
$data = mysql_query("SELECT * FROM content" ) or die(mysql_error());

//Henter indhold fra formular
$url = mysql_real_escape_string($_POST['heading']);
$tekst = mysql_real_escape_string($_POST['tekst']);
$id = mysql_real_escape_string($_POST['id']);

// Indsæt i tabel

  if (isset($_POST['submit'])) {
      $tabeldata = "UPDATE content SET titel = '$url',tekst = '$tekst' WHERE id = '$id'";
      $resultat = mysql_query($tabeldata);
if($resultat) {
    header ('Location: ../index.php?msg=SAVE_SUCCES');
  }
else {
    header ('Location: ../index.php?msg=SAVE_FAILED');
}
}
else {
    header ('Location: ../index.php?msg=ACCESS_DENIED');

}
mysql_close();
?>
Avatar billede starf Nybegynder
21. juni 2012 - 12:50 #2
tak, super let at gå igang med. et spørgsmål

$tabeldata = "UPDATE site SET titel = '$url',tekst = '$tekst' WHERE id = '$id'";

skal have opdateret 2 felter, heading og indhold.

                    <form action="site_edit.php" method="post" name="opret">
                        <p>Overskrift: <input type="text" name="heading" value="<?php echo $indhold['navn']?>" /></p>
                        <p>Indhold:<br />
                        <textarea name="tekst"><?php echo $indhold['indhold']?></textarea></p>

tager din ikke kun tekst kun der?
Avatar billede starf Nybegynder
21. juni 2012 - 12:58 #3
ah den tager det fra
$url = mysql_real_escape_string($_POST['heading']);
$tekst = mysql_real_escape_string($_POST['tekst']);
$id = mysql_real_escape_string($_POST['id']);

men får dog saved failed...
Avatar billede KHHP Juniormester
21. juni 2012 - 13:12 #4
Prøv dette i stedet for. Så kan vi se hvad der går galt:
if (isset($_POST['submit'])) {
      $tabeldata = "UPDATE content SET titel = '$url',tekst = '$tekst' WHERE id = '$id'";
      $resultat = mysql_query($tabeldata) or die($fejl = mysql_error(););
if(resultat) {
echo 'Data gemt';
}
else {
echo 'Fejl<br />Se fejlkode: '.$fejl;
}
else {
header ('Location: ../index.php?msg=ACCESS_DENIED');
}

Så skule den gerne skrive fejlen til dig.
Ellers prøv dette:
if (isset($_POST['submit'])) {
      $tabeldata = "UPDATE content SET titel = '$url',tekst = '$tekst' WHERE id = '$id'";
      $resultat = mysql_query($tabeldata) or die(mysql_error());
if(resultat) {
echo 'Data gemt';
}
else {
echo 'Fejl<br />Se fejlkode: '.$fejl;
}
else {
header ('Location: ../index.php?msg=ACCESS_DENIED');
}

Så finder vi let ud af hvad fejlen er.
Dog er koden ikke længere tidssvarende og jeg er igang med at opdatere de forskellige koder jeg har liggende til MySQLi og jeg kan kun anbefale dig at gøre det samme.
En guide til hvordan det fungerer kan findes her: http://www.eksperten.dk/guide/1480
Avatar billede starf Nybegynder
21. juni 2012 - 13:19 #5
smid et svar, det var mig der tågede lidt.. :) jeg takker mange gange for hjælpen.
Avatar billede KHHP Juniormester
21. juni 2012 - 13:38 #6
Svar får du her :)
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
Kurser inden for grundlæggende programmering

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