Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не срабатывает update в БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
AlinaKubes
Отправлено: 18 Сентября, 2014 - 16:16:09
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Есть вот такой код
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if(!isset($_SESSION['logged']))
  4. ?>
  5. <?
  6. require('config.php');
  7. ?>
  8.  
  9.  
  10. <link href="css/main.css" rel="stylesheet" type="text/css">
  11.  
  12. <!--Отображение/редактирование новостей-->
  13.  
  14. <h3>Просмотр/редактирование новостей</h3>
  15.  
  16. <?
  17.         function fuckquot($newstext)
  18.         {
  19.         $newstext=str_replace("'",""",$newstext);
  20.         $newstext=str_replace('"',""",$newstext);
  21.         RETURN $newstext;
  22.         }
  23.         ?>
  24. <?
  25. if(isset($_POST["id"]))
  26. {
  27.         $id=$_POST["id"];
  28.         $data=$_POST["data"];
  29.         $newstext=fuckquot($_POST["newstext"]);
  30.         $tema=fuckquot($_POST["tema"]);
  31.  
  32.  
  33.         mysql_query("UPDATE news SET data='$data', tema='$tema', newstext='$newstext' where id='$id'");
  34.  
  35.         echo "<font color=\"green\"><b>Готово.</b></font><br><br>";
  36. }
  37.  
  38. if(isset($_GET["id"]))
  39. {
  40.         $id=$_GET["id"];
  41.         if ($_GET["option"]=="edit")
  42.         {
  43.                 $tablae = mysql_query("SELECT * FROM news where id='$id'");
  44.                 while ($registroe = mysql_fetch_array($tablae))
  45.                 {
  46.                         ?>
  47.                                  <script>   function appendtag(text1, text2)
  48.            {
  49.                if ((document.selection))
  50.                {
  51.                    document.surforder.newstext.focus();
  52.                    document.surforder.document.selection.createRange().text = text1+document.surforder.document.selection.createRange().text+text2;
  53.                } else if(document.surforder.newstext.selectionStart != undefined) {
  54.                    var element    = document.surforder.newstext;
  55.                    var str     = element.value;
  56.                    var start    = element.selectionStart;
  57.                    var length    = element.selectionEnd - element.selectionStart;
  58.                    element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
  59.                } else document.surforder.newstext.value += text1+text2;
  60.            }</script>
  61.                         <style>
  62.                         .knopka {
  63.                         background: #ccc;
  64.                         border: 1px solid black;
  65.                         padding: 5px;
  66.                         }
  67.                         .knopka:hover{
  68.                         background: #fff;
  69.                         border: 1px solid blue;
  70.                                 padding: 5px;
  71.                         }
  72.                         </style>
  73. <table class='adn'>
  74. <tr class='lineb'>
  75. <td align=center>Значение</td>
  76. <td align="left"><table class="adn"><tr><td align="left" style="border: none; padding: 0">Описание</td><td align="right" style="border: none; padding: 0"><a href="#" onclick="document.getElementById('MainForm').submit(); return false" class="liv">Сохранить</a></td></tr></table></td>
  77. </tr><tr class='liney ell'><td align=left>
  78. <form action="index.php?p=news" id='MainForm' method="POST" name='surforder'>
  79. <input type='hidden' name='id' value='<?=$registroe[id]; ?>'>
  80. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input  type="text" value='<?=$registroe[tema]; ?>' name="tema"></td><td algin=left>Тема новости</td></tr>
  81. <tr class='liney ell'><td align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  82. <input type="text" name="data" value='<?=$registroe[data]; ?>' ></td><td algin=left>Дата новости</td></tr>
  83.  
  84. <tr class='liney ell'>
  85. <td align=left>
  86. <textarea rows="9" cols="70" name="newstext"><?=$registroe[newstext]; ?></textarea>
  87. <div style='float:left'>
  88. <span class='knopka' onClick="javascript:appendtag('[url]','[/url]'); return false;">[URL]</span><br><br><br>
  89. <span class='knopka' onClick="javascript:appendtag('[b]','[/b]'); return false;"><b>[B]</b></span><br><br><br>
  90. <span class='knopka' onClick="javascript:appendtag('[u]','[/u]'); return false;"><u>[U]</u></span><br><br><br>
  91. <span class='knopka' onClick="javascript:appendtag('[i]','[/i]'); return false;"><i>[I]</i></span><br>
  92. </div>
  93.  
  94. </td><td align=left>Текст новости</td>
  95. </tr>
  96. </table>
  97.  
  98. <br>* - Разрешены бб коды:<br>
  99. [url],[b],[u],[i],[s],[img],[color=],[size=],[h1],[h2]-[h6]
  100.  
  101. ** В SeoEdit не используйте теги [h1]-[h6] - портится внешний вид...
  102. <input type="submit" value="Сохранить" class="button">
  103. </form>
  104.  
  105.                         <?
  106.                 }
  107.                 exit;
  108.         }
  109.         if ($_GET["option"]=="delete")
  110.         {
  111.                 $id=$_GET["id"];
  112.                 mysql_query("DELETE FROM news WHERE id='$id'");
  113.  
  114.                 echo "<font color=\"#cc0000\"><b>Новость удалена.</b></font><br><br>";
  115.         }
  116. }
  117. ?>
  118.  
  119. <br>
  120. <table class="adn">
  121. <tr class="lineb">
  122.                 <td width="50">№</td>
  123.                 <td>Дата написания новости</td>
  124.                 <td>Текст новости</td>
  125.                 <td></td>
  126.                 <td></td>
  127.         </tr>
  128.         <?
  129.  
  130.         $sql="SELECT * FROM news order by id desc";
  131.  
  132.         $tabla = mysql_query($sql);
  133.         while ($registro = mysql_fetch_array($tabla))
  134.         {
  135.                 ?>
  136.                 <tr class='liney ell'>
  137.                         <td align=center><?=$registro["id"] ?></td>
  138.                         <td align=center><?=$registro["data"] ?></td>
  139.                         <td><?=$registro["newstext"] ?></td>
  140.                         <td align=center>
  141.                                 <form method="post" action="index.php?p=news&id=<?= $registro["id"] ?>&option=edit">
  142.                                 <input type="submit" value="Редактировать" class="button">
  143.                                 </form>
  144.                         </td>
  145.                         <td align=center>
  146.                                 <form method="post" action="index.php?p=news&id=<?= $registro["id"] ?>&option=delete">
  147.                                 <input type="submit" value="Удалить" class="button">
  148.                                 </form>
  149.                         </td>
  150.                 </tr>
  151.                 <?
  152.         }
  153.         ?>
  154. </table>
  155.  

Он отображает, он удаляет и он же должен редактировать данные в бд.
Проблема в том, что удаляет, отображает, и выводит форму для редактирования без проблем. И после нажатия "сохранить" вроди как всё делает но данные в БД не изменяются. Может я совсем блондинка? 2 дня уже голову ломаю. Помогите плз.
 
 Top
Aricus
Отправлено: 18 Сентября, 2014 - 16:37:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




На будущее, никто не будет читать более 20 строк кода, так что выбирай то, что относится к теме.
Редактирование осуществляется примерно таким способом:
CODE (htmlphp):
скопировать код в буфер обмена
  1. mysql_query("UPDATE `users` SET `Avatar` = '{$pathAvatar}' WHERE `Login` = '{$_POST[regLogin]}'",$link)
 
 Top
RickMan
Отправлено: 18 Сентября, 2014 - 16:40:22
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Что за мешанина html, css, js и php? Почему нельзя все писать структурированно и раздельно? Как теперь в этом разбираться?
 
 Top
Sail
Отправлено: 18 Сентября, 2014 - 16:41:01
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




И вот тут нечто странное со вторыми параметрами вызова str_replace():
PHP:
скопировать код в буфер обмена
  1.  function fuckquot($newstext)
  2.         {
  3.         $newstext=str_replace("'",""",$newstext);
  4.         $newstext=str_replace('"',""",$newstext);
  5.         RETURN $newstext;
  6.         }

Однако, кавычку внутри строки, обрамлённой кавычками надо экранировать.....
 
 Top
and_07
Отправлено: 18 Сентября, 2014 - 16:42:38
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




del

(Отредактировано автором: 18 Сентября, 2014 - 16:46:42)

 
 Top
Sail
Отправлено: 18 Сентября, 2014 - 16:49:14
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




AlinaKubes, а на вопрос: "Почему запрос к БД не даёт ожидаемого результата?" поможет ответить следующая конструкция (раз уж у нас update):
PHP:
скопировать код в буфер обмена
  1. $sQuery = "UPDATE `news` SET `data`='{$data}', `tema`='{$tema}', `newstext`='{$newstext}' where `id`='{$id}'";
  2. $result = mysql_query($sQuery);
  3. if($result === FALSE) {
  4.     echo $sQuery.'<br>'.mysql_errno().': '.mysql_error();
  5. } else {
  6.     echo $sQuery.'<br>'.mysql_affected_rows();
  7. }
  8.  
 
 Top
AlinaKubes
Отправлено: 19 Сентября, 2014 - 06:38:46
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Sail пишет:
AlinaKubes, а на вопрос: "Почему запрос к БД не даёт ожидаемого результата?" поможет ответить следующая конструкция (раз уж у нас update):
PHP:
скопировать код в буфер обмена
  1. $sQuery = "UPDATE `news` SET `data`='{$data}', `tema`='{$tema}', `newstext`='{$newstext}' where `id`='{$id}'";
  2. $result = mysql_query($sQuery);
  3. if($result === FALSE) {
  4.     echo $sQuery.'<br>'.mysql_errno().': '.mysql_error();
  5. } else {
  6.     echo $sQuery.'<br>'.mysql_affected_rows();
  7. }
  8.  



Спасибочки. Нашла ошибку. Ура! Воздушный поцелуй
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB