webForumDet fria alternativet

krångel med update

4 svar · 311 visningar · startad av dreas

dreasMedlem sedan jan. 2004140 inlägg
#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>
MatteMedlem sedan aug. 20002 975 inlägg
#2

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.

dreasMedlem sedan jan. 2004140 inlägg
#3

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

@ndersMedlem sedan juni 200032 969 inlägg
#4

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?

dreasMedlem sedan jan. 2004140 inlägg
#5

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

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)