Avatar billede impulze Nybegynder
04. september 2004 - 21:03 Der er 7 kommentarer og
1 løsning

Update databasen

Den opdater ikke databasen med det man vil. Men kan godt hente dataerne fra mysql, men ja bare ikke opdatere det.

Er der nogle der kan hjælpe mig med at se hvad der er galt med koden, eller har måske en anden php script til at opdatere sin database på?

Koden som den er nu:

<?
include ("config.php");
$query = mysql_query("SELECT * FROM kloak_nyheder") or print mysql_error();
while($r = mysql_fetch_array($query)) {
$id = $r["id"];
$overskrift = $r["overskrift"];
$forfatter = $r["forfatter"];
$tekst = $r["tekst"];
}
?>
<form method="post" action="?id=nyhed_ret" enctype="multipart/form-data">
<table width="500" cellpadding="4" cellspacing="0" style="border: 1px solid #AAAAAA">
  <tr>
    <td width="500" colspan="2" height="19"><b>Ret nyhed</b></td>
  </tr><tr>
<td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Overskrift:</td>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Skrevet af:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" height="22">
    <input type="text" name="overskrift" value="<? echo "$overskrift"; ?>" style="width: 220px" size="20"></td>
    <td width="250" height="22">
    <input type="text" name="forfatter" value="<? echo "$forfatter"; ?>" style="width: 220px" size="20"></td>
  </tr><tr>
  <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" bgcolor="#F3F3F3" align="left" height="19" colspan="2">Tekst:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" colspan="2"><textarea name="tekst" rows="5" cols="76"><? echo "$tekst"; ?></textarea></td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
<td width="250" align="left" height="26"><a href="java script: history.back(1)">Tilbage</a></td>
<td width="250" align="right" height="26"><input type="submit" name="update" value="Udfør"></td>
  </tr></table>
  </form>
<?
if ($update) {
include ("config.php");
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
?>
Avatar billede dennismp Nybegynder
04. september 2004 - 21:08 #1
fjern:
if ($update) {
include ("config.php");
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}

tilføj øverst:
if (isset($_POST['update'])) {
include ("config.php");
$overskrift = $_POST['overskrift'];
$forfatter  = $_POST['formatter'];
$tekst      = $_POST['tekst'];
$id          = $_POST['id'];
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
Avatar billede dennismp Nybegynder
04. september 2004 - 21:09 #2
Hvorfor bruger du en while til at hente data ud med? Det ser ud som om du løber alle rækkerne igennem mnen bruger kun den sidste af dem som du kan redigere.
Avatar billede impulze Nybegynder
27. marts 2005 - 12:39 #3
Ved ikke hvad du snakker om.. hehe.. prøv at forklar det lidt mere?
Avatar billede dennismp Nybegynder
27. marts 2005 - 12:55 #4
Damn, du er godt nok lang tid om at komme med feedback :)

while($r = mysql_fetch_array($query)) {
$id = $r["id"];
$overskrift = $r["overskrift"];
$forfatter = $r["forfatter"];
$tekst = $r["tekst"];
}

er der 20 rækker, henter du dem alle ud. men det er kun den sidste række der bliver brugt, da $id,$overskrift,(osv) bliver overskrevet.. fx din tabel indeholder to rækker:
id=1, overskrift="Nummer 1" og
id=2, overskrift="Nummer 2" og

loop1 i while
$id = 1
$overskrift = 'Nummer 1'
.. osv

lopp 2 i while
$id = 2
$overskrift = 'Nummer 2';

derefter viser du så værdierne ($id,$overskrift..osv). Men loop1 er fuldstædnigt overflødigt, da de data ikke bliver brugt til noget.
Avatar billede impulze Nybegynder
27. marts 2005 - 18:14 #5
Det er jeg også ked af, at det har taget sin tid. Men jeg er åbenbart ikke så god til php, som jeg troede. For jeg forstår ikke rigtig med det lopp, som du skriver.
Avatar billede dennismp Nybegynder
27. marts 2005 - 18:24 #6
erstat while med if, så er du udeover det problem. Det var jo bare en sidebemærkning
Avatar billede impulze Nybegynder
27. marts 2005 - 18:55 #7
Okay har fået det til, at virke.. undskyld vente tiden :)
læg en svar :)
Avatar billede dennismp Nybegynder
27. marts 2005 - 20:19 #8
Fair nok :)
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