webForumDet fria alternativet

krångel med update

PHP

4 svar · 311 visningar · startad av dreas

Medlem sedan jan. 2004140 inlägg
Frågan#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>
Medlem 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.

Medlem 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

Medlem sedan juni 200032 967 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?

Medlem 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

267 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)