D dreas Medlem sedan jan. 2004 140 inlägg Frågan 8 apr. 2005 20:01 #1 Hej!
Är rätt grön på det här med PHP, hållit på en del med ASP men bytte såklart sida :)
Jag har en sida där jag presenterar akutell nyhet som ska uppdateras i ren text, samt nyheten i ett formulär som är redigerbart. Allting verkar vara frid o fröjd, men ingenting av det jag ändrar sparas. Dvs.. if-satsen blir aldrig true..eller?
Här är koden ivarje fall, blir tyvärr ett sånt där långt o tradigt inlägg:
<?php
include_once('dbconnect.php');
?>
<html>
<head>
<title>admin.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel=stylesheet href="CSSstyle.css" type="text/css">
<script language="javascript" src="menu/ypSlideOutMenus.js"></script>
<script language="javascript">
new ypSlideOutMenu("menu1", "down", 20, 80, 361, 55)
new ypSlideOutMenu("menu2", "down", 120, 80, 361, 55)
new ypSlideOutMenu("menu3", "down", 220, 80, 361, 55)
</script>
</head>
<body>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="38" valign="top"><div align="right"><img src="pic/adminTxt.gif" width="119" height="36"></div></td>
</tr>
<tr>
<td height="14" bgcolor="#CCCCCC">
<div id="Menu" style="position:absolute; left:16px; top:53px; width:370px; height:20px;">
<table border="0" cellspacing="0" cellpadding="0" width="0">
<tr>
<td width="131"><a href="#" onmouseover="ypSlideOutMenu.showMenu('menu1');" onmouseout="ypSlideOutMenu.hideMenu('menu1')"><p>uppdatera</p></a></td>
<td width="140"><a href="#" onmouseover="ypSlideOutMenu.showMenu('menu2');" onmouseout="ypSlideOutMenu.hideMenu('menu2')"><p>orders</p></a></td>
<td width="78"><a href="#" onMouseOver="ypSlideOutMenu.showMenu('menu3');" onMouseOut="ypSlideOutMenu.hideMenu('menu3')"><p>system</p></a></td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td><br>
<table width="800" border="0">
<tr>
<td align="left" valign="top"> <br>
<br>
<table width="375" border="0" align="center" cellpadding="0" cellspacing="0">
<?php
if (isset($_POST['redigera'])) {
$del = "UPDATE News SET rubrik = '" . $_POST['rubrik']."', txt = '" . $_POST['txt']."' WHERE id=" . $_REQUEST['ID'];
mysql_query($del) or
die("Det gick inte att uppdatera " . mysql_error());
}
else {
$query = "SELECT * FROM News WHERE id= $myID";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
while($rad = mysql_fetch_array($result)) {
?>
<tr>
<td width="100"><p class=1>[<?php print($rad["date"]);?>]</p></td>
<td width="75%" align="left"><p class=1><?php print($rad["rubrik"]);?></p></td>
</tr>
<tr>
<td colspan="2"><p class=1><br>
<?php print(nl2br($rad["txt"]));?></p></td>
</tr>
</table>
</td>
<td width="350">
<form method="POST" name="redigera" action="news_edit.php?ID=4">
<p> <strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Rubrik</font></strong><br>
<input name="rubrik" type="text" value="<?php print($rad["rubrik"]);?>" size="30">
</p>
<p><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Text</font></strong><br>
<textarea name="txt" cols="35" rows="10"><?php print($rad["txt"]);?></textarea>
</p>
<p>
<input type="submit" name="Redigera" value="Redigera">
</p>
</form>
</td>
<?php }
}
?>
</tr>
</table> </td>
</tr>
</table>
</body>
</html>
Matte Medlem sedan aug. 2000 2 975 inlägg Du har
if (isset($_POST['redigera'])) {
Men det skickas ingen $_POST['redigera'] från formuläret.
Däremot har du en $_POST['Redigera'], eftersom du i ditt formulär har name="Redigera".
Ändra antingen i formuläret eller i if-satsen så namnen blir lika vad det gäller gemener/versaler.
D dreas Medlem sedan jan. 2004 140 inlägg Hej, och tack för ditt svar!
Jag ändrade på namnet, och nog verkar scriptet gå igenom nu. dock får jag ett felmeddelande direkt på sidan:
"Query failed : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 "
Jag antar att det är följande MySQL kod som strular:
<?php
if (isset($_POST['Redigera'])) {
$del = "UPDATE News SET rubrik = '" . $_POST['rubrik']."', txt = '" . $_POST['txt']."' WHERE id=" . $_REQUEST['ID'];
mysql_query($del) or
die("Det gick inte att uppdatera " . mysql_error());
}
else {
$query = "SELECT * FROM News WHERE id= $myID";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
while($rad = mysql_fetch_array($result)) {
?>
troligen då $del som är problemet då if-satsen nu går igenom
/Andreas
@nders Medlem sedan juni 2000 32 967 inlägg Felmeddelandet kommer ju nu från else-delen, och antagligen beror det på att $myID inte har ett värde. Var sätter du den variabeln?
D dreas Medlem sedan jan. 2004 140 inlägg Det är sant. Vad klantigt av mig att missa.
Den hade jag när jag försökte fixa problemet själv, men tog senare bort den variabeln.
Men nu fungerar allt! Tack Matte och @nders för hjälpen!
Mvh
/Andreas