Avatar billede traxis Nybegynder
25. oktober 2005 - 22:25 Der er 7 kommentarer og
1 løsning

At redigere en tabel i mysql

Hvorfor kan det være, at ligemeget hvor jeg leder efter nogen der har fået et script til at opdatere en tabel i mysql, så får de det aldrig til at virke? :S Så nu spørger jeg selv, eftersom jeg fandt frem til nogle få ting, men det virker stadig ikke.

Her er mine filer:

Rettenyhed.php:
<html>
<head>
<title>Ret en nyhed</title>
<link rel="stylesheet" type="text/css" href="../style.css">

</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">

<?php
include ('config.php');

if( isset( $_GET['id'] ) )
  $id = $_GET['id'];
else
  $id = null;


if( $id !== null ) {
  // Hent først data ud
  $resultat = mysql_query("select * FROM nyhedsys WHERE id = '$id'");

  // Kør så igennem for hver række
  $raekke = mysql_fetch_array($resultat);
  if( $raekke == null )
    die("Fandt ikke rækken");

  extract($raekke);
?>


<form ACTION="retnyhed.php" method="get">
<input type="hidden" value="<? echo $id ?>" name="id">
<p><h2><b>.: Ret en nyhed :.</b></h2><b><br>
Overskrift:<br> <input type="text" value="<? echo"$headline" ?>" name="headline"><br>
<br>
Navn:<br> <input type="text" value="<? echo"$name" ?>" name="name"><br>
<br>
Email:<br>
<input type="text" value="<? echo"$email" ?>" name="email"><br>
<br>
Nyhed:<br> <textarea name="news" rows="10" cols="35"><? echo"$news" ?></textarea></b></p>
<br>
<input type=submit value=Updater name="submit" >
</form>
<?php
}
else {
  $sql = "SELECT id, headline FROM nyhedsys ORDER BY headline";
  $res = mysql_query($sql) or die(mysql_error());
  // Lav liste
  while($row = mysql_fetch_array($res)) {
    print '<a href="' . $_SERVER['PHP_SELF'] . '?id=' . $row[0] . '">'.
      stripslashes($row[1]). '</a><br />';
  }
}
?>
</body>

</html>

-------------

Retnyhed.php:
<?
include "config.php";

$id = $_GET['id'];

mysql_query("UPDATE nyhedsys SET headline='$headline',name='$name',email='$email',news='$news',date=now() WHERE id='$id'") or die(mysql_error());

header("Location: nyheder.php");
?>

-------

Nyheder.php:
<?
include "config.php";

$result = mysql_query("SELECT * FROM nyhedsys ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {

echo "
<a href='rettenyhed.php?id=".$row['id']."'><b>".$row['headline']."</b></a><br>
<i>".$row['date']." - ".$row['name']."</i><br>
".$row['news']."<br><hr width='200' align='left'><br>
";
}
?>
-------------------

Config.php indeholder bare scriptet til at connecte til databasen.

Mit problem er følgende:
Når jeg trykker på en nyhed jeg har oprettet i phpmyadmin og retter lidt i den er trykker Update, så går den, som planlagt, tilbage til nyheder.php, men i stedet for at opdatere tabellen, så sletter den alt undtagen datoen, så alle felterne er tomme :S hvorfor pokker gør den det ?
Avatar billede traxis Nybegynder
25. oktober 2005 - 22:27 #1
Hvis nogen vil prøve at teste det, så er min dump her:
--
-- Struktur-dump for tabellen `nyhedsys`
--

CREATE TABLE `nyhedsys` (
  `headline` text NOT NULL,
  `news` text NOT NULL,
  `name` text NOT NULL,
  `email` text NOT NULL,
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `id` int(3) NOT NULL default '0',
  UNIQUE KEY `date` (`date`),
  KEY `date_2` (`date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Data dump for tabellen `nyhedsys`
--
Avatar billede erikjacobsen Ekspert
25. oktober 2005 - 22:34 #2
Du skal sikker hente $headline osv. på samme måde som $id

  $headline = $_GET['headline'];

Og bruge heller method="post" (og $_POST[...]) når du opdaterer i en tabel.
Avatar billede traxis Nybegynder
25. oktober 2005 - 22:36 #3
Hehe, kan du uddybe det ? Blev lige lidt forvirret af det der ..
Avatar billede traxis Nybegynder
25. oktober 2005 - 22:56 #4
Ahh, fik det til at virke. Erik læg lige et svar, så får du pointene..
Avatar billede erikjacobsen Ekspert
25. oktober 2005 - 22:57 #5
Så glem sidste linie. Du skal selv "hente" dine variabler fra $_GET på samme måde som du gør med $id.
Avatar billede erikjacobsen Ekspert
25. oktober 2005 - 22:57 #6
Nej tak, jeg samler slet, slet ikke på point. Svar selv, accepter eget svar.
Avatar billede traxis Nybegynder
25. oktober 2005 - 22:57 #7
Hehe.. Okey...
Avatar billede erikjacobsen Ekspert
25. oktober 2005 - 23:15 #8
Svar selv, **accepter eget 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