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
Форумы портала PHP.SU :: Версия для печати :: Изменение записи по своему id
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Изменение записи по своему id

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

1. Nooo - 18 Апреля, 2012 - 17:40:59 - перейти к сообщению
Всем привет, возникла проблема и как решить её не знаю, в общем скрипт работает так есть таблица в ней выводится список из бд, так же есть кнопка выключить если модуль включен, и кнопка включить если модуль выключен.. но почему то при сохранении всегда изменяется последняя запись бд... как сдлеать что бы запись изменялась по своему id а не по последнему?
PHP:
скопировать код в буфер обмена
  1.  
  2. $s50 = $db->query("SELECT * FROM ".USERPREFIX."_modules");
  3. if($db->num_rows($s50) > 0){
  4. $s51 = $db->get_array($s50);
  5. do{
  6.     $status = $s51['status'];
  7.     $id_m = $s51['id'];
  8.     if($s51['status'] == "0"){
  9.         $statusM = "<img src='{$imagedir}/mods/modules/off.png' />";
  10.         $linkModules = "Включить";
  11.         $status_n = "1";
  12.     }else{
  13.         $statusM = "<img src='{$imagedir}/mods/modules/on.png' />";
  14.         $linkModules = "Выключить";
  15.         $status_n = "0";
  16.     }
  17. $name_mo = $s51['name'];        
  18. echo '
  19. <tr>
  20. <td witdh="20%">'.$s51['id'].'</td>
  21. <td witdh=20%>'.$s51['name'].'</td>
  22. <td>'.$statusM.'</td>
  23. <td><input style="margin-left:20px;" type="submit" name="save_M" value="'.$linkModules.'"/></td>
  24. </tr>
  25. ';
  26.  
  27. }while($s51 = $db->get_array($s50));  
  28. }    
  29. echo '
  30.                                                                                 </form></tbody>
  31.                                                                         </table>';
  32.                                    
  33.                     if(isset($_POST['save_M'])){
  34.                                  $select_m = $db->query("UPDATE ".USERPREFIX."_modules SET status='".$status_n."' WHERE id='".$id_m."'");      
  35.                                 if($select_m){
  36.                                   header("Location: /".$config['admin_file']."?mod=modules&status=".$status_n);  
  37.                                 }
  38.                                     }
  39.  
2. dzubchik - 18 Апреля, 2012 - 18:09:38 - перейти к сообщению
Nooo,так у Вас где-то передаётся значение id? Я не увидел.
3. Bio man - 18 Апреля, 2012 - 18:38:16 - перейти к сообщению
А как это относится у ООП? По делу: у тебя id_m имеет значение последней итерации цикла.
Nooo пишет:
как сдлеать что бы запись изменялась по своему id а не по последнему?
Может нужно явно указать? По своему это по какому?
4. Nooo - 18 Апреля, 2012 - 19:31:17 - перейти к сообщению
dzubchik
$id_m = $s51['id'];
Bio man
id который присваивается в бд, дальше идет цикл в котором каждая запись имеет свой id который берется из бд, и при выключении по этому id идет выборка из бд где изменяется запись с этим id в строке статус 1 заменяется на 0...

 

Powered by ExBB FM 1.0 RC1