hvorfor opdatere den ikke!?

Tags:    php

<?php if (isset($_POST['update'])) { header("location: news.php"); } ?>
<?php session_start(); ?>
<?php
if(!$_SESSION['loget_in'] == 1) {
header("Location: http://www.benny.dk");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>:: CONTUSE ::</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body text="#ffffff" bgcolor="#3B3C3C" topmargin="0">
<?PHP
if ($mode == "") {
mysql_connect("localhost", "**", "***");
mysql_select_db("***");
$result = mysql_query("SELECT * FROM nyheder");
while($r = mysql_fetch_array($result)) {
echo"
$r[navn] - $r

- <A HREF='$php_self?mode=ret&id=$r[id]'>Update</A><BR>";
}
}
?>
<?PHP
if ($mode == "ret") {
mysql_connect("localhost", "***", "***");
mysql_select_db("***");
$result = mysql_query("SELECT * FROM nyheder where id = $id");
while($r = mysql_fetch_array($result)) {
$id = $r["id"];
$navn = $r["navn"];
$overskrift = $r["overskrift"];
$tekst = $r["tekst"];
echo "
<form ACTION='$php_self?mode=update&navn&id=$r' method='post'>
<table border='0'>
<tr>
<td><b><font class='overskrift'>.name:</td>
<td width='56'></td>
<td><input type='text' name='navn' value='$r[navn]'></td>
</tr>
<table border='0'>
<td><b><font class='overskrift'>.headline:</td>
<td width='40'></td>
<td><input type='text' name='overskrift' value='$r

'></td>
</tr>
<tr>
<td valign='top'><b><font class='overskrift'>.text:</td>
<td width='40'></td>
<td><TEXTAREA type='text' name='tekst' rows='8' cols='40'>$r[tekst]</textarea></td>
</tr>
</table>
<br><br>
<div align='left'>
<input type='submit' name='update' value='.update'>
</div>
</form>
";
}
}
?>
<?
if ($mode == "update") {
$query = mysql_query("UPDATE nyheder SET navn = '$navn', overskrift = '$overskrift', tekst = '$tekst' WHERE id= $id");
echo "Done!";
}
?>

</body>
</html>
</body>
</html>

en der kan få den til at virke?? den opdatere ikke...


.MortenJ // m]

http://www.snotunge.dk





5 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
<?php if (isset($_POST['update'])) { header("location: news.php"); } ?>
<?php session_start(); ?>
<?php
if(!$_SESSION['loget_in'] == 1) {
header("Location: http://www.benny.dk");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>:: CONTUSE ::</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body text="#ffffff" bgcolor="#3B3C3C" topmargin="0">
<?PHP
if ($mode == "") {
mysql_connect("localhost", "**", "***");
mysql_select_db("***");
$result = mysql_query("SELECT * FROM nyheder");
while($r = mysql_fetch_array($result)) {
echo"
$r[navn] - $r

- <A HREF='$php_self?mode=ret&id=$r[id]'>Update</A>";
}
}
?>
<?PHP
if ($mode == "ret") {
mysql_connect("localhost", "***", "***");
mysql_select_db("***");
$result = mysql_query("SELECT * FROM nyheder where id = $id");
while($r = mysql_fetch_array($result)) {
$id = $r["id"];
$navn = $r["navn"];
$overskrift = $r["overskrift"];
$tekst = $r["tekst"];
echo "
<form ACTION='$php_self?mode=update&navn&id=$r' method='post'>
<table border='0'>
<tr>
<td><font class='overskrift'>.name:</td>
<td width='56'></td>
<td><input type='text' name='navn' value='$r[navn]'></td>
</tr>
<table border='0'>
<td><font class='overskrift'>.headline:</td>
<td width='40'></td>
<td><input type='text' name='overskrift' value='$r

'></td>
</tr>
<tr>
<td valign='top'><font class='overskrift'>.text:</td>
<td width='40'></td>
<td><TEXTAREA type='text' name='tekst' rows='8' cols='40'>$r[tekst]</textarea></td>
</tr>
</table>

<div align='left'>
<input type='submit' name='update' value='.update'>
</div>
</form>
";
}
}
?>
<?
if ($mode == "update") {
$query = mysql_query("UPDATE nyheder SET navn = '$navn', overskrift = '$overskrift', tekst = '$tekst' WHERE id= $id");
echo "Done!";
}
?>

</body>
</html>
</body>
</html>

en der kan få den til at virke?? den opdatere ikke...


.MortenJ // m]

http://www.snotunge.dk



Hejsa Morten.

Den opdatere ikke fordi den aldrig får en forbindelse til databasen under update
Du kan enten tilføje følgende 2 linier til update sectionen

mysql_connect("localhost", "***", "***");
mysql_select_db("***");

så den kommer til at se således ud
---- kode starter her ----
<?
if ($mode == "update") {
mysql_connect("localhost", "***", "***");
mysql_select_db("***");
$query = mysql_query("UPDATE nyheder SET navn = '$navn', overskrift = '$overskrift', tekst = '$tekst' WHERE id= $id");
echo "Done!";
}
?>
---- slut på kode ---
derudover skal du lige checke dine echo statements da man ikke kan
echo " $r['navn'] "

hvis du bruger arrays i en streng skal du som minimum bruge echo " {$r['navn']} ".

eller du kan ændre dit script til følgende der er en lille omskrivning og en lille ændring

--- ny version af fuld kode -------
<?php
session_start();

if(!$_SESSION['loget_in'] == 1) {
header("Location: http://www.benny.dk");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>:: CONTUSE ::</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body text="#ffffff" bgcolor="#3B3C3C" topmargin="0">
<?PHP
/* der forbindes til databasen */
mysql_connect("localhost", "***", "***");
mysql_select_db("***");

/* vi sikre os at mode er defineret */
if (!isset($mode) $mode="");

switch ($mode)
{
case "ret": /* hvis mode==ret */
$result = mysql_query("SELECT * FROM nyheder where id = $id");
$s="";
while($r = mysql_fetch_array($result)) {
$id = $r["id"];
$navn = $r["navn"];
$overskrift = $r["overskrift"];
$tekst = $r["tekst"];
/* omskrevet echo streng da du under
echo "
<form ACTION='$php_self' method='post'>
<table border='0'>
<tr>
<td><b><font class='overskrift'>.name:</td>
<td width='56'></td>
<td><input type='hidden' name='id' value='$id'><input type='text' name='navn' value='$navn'></td>
</tr>
<table border='0'>
<td><b><font class='overskrift'>.headline:</td>
<td width='40'></td>
<td><input type='text' name='overskrift' value='$overskrift'></td>
</tr>
<tr>
<td valign='top'><b><font class='overskrift'>.text:</td>
<td width='40'></td>
<td><TEXTAREA type='text' name='tekst' rows='8' cols='40'>$tekst</textarea></td>
</tr>
</table>
<br><br>
<div align='left'>
<input type='submit' name='mode' value='update'>
</div>
</form>
";
};
break;
case "update": /* hvis mode==update */
$query = mysql_query("UPDATE nyheder SET navn = '$navn', overskrift = '$overskrift', tekst = '$tekst' WHERE id= $id");
echo "Done!<BR> <A href='news.php'>Gå til news</A>";

break;
default: /* hvis mode ikke var sat eller er == "" */
$result = mysql_query("SELECT * FROM nyheder");
while($r = mysql_fetch_array($result,MYSQL_ASSOC)) {
echo "
{$r[navn]} - {$r

} - <A HREF='$php_self?mode=ret&id={$r[id]}'>Update</A><BR>";
};
} // switch
?>

</body>
</html>
---- slut på ny version ----
Venlig hilsen
Michael
Mijoheto





undskyld at det hele kom med igen. Det er første gang jeg poster her.
Michael
Mijoheto



Forresten kan det være at du i din opsætning (eller der hvor du køre scriptet fra) har sat register_globals = off og så vil scriptet ikke virke.

Hvis det ikke virker der hvor du køre det fra kan du prøve at sætte følgende ind lige før kommentaren /* der forbindes til databasen */

if (!isset($mode)) {
if (isset($_POST['mode'])) {
$mode=$_POST['mode'];
$id=$_POST['id'];
$navn=$_POST['navn'];
$overskrift=$_POST['overskrift'];
$tekst=$_POST['tekst'];
}
else if (isset($_GET['mode'])) {
$mode=$_GET['mode'];
$id=$_GET['id'];
}
}

venlig hilsen
Michael
Mijoheto



jeg har et andet update script, og det virker fint. så globals burde virke fint?
det her script skule bare være lidt anderleders. så derfor har jeg ikke brugt det andet.

men jeg kan ikke få det til at virke... andre forslag??
.MortenJ // m]

http://www.snotunge.dk





ingen hjælp



t