Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Операции с БД


Автор: serialselfkiller 10.9.2008, 06:13
Мне нужно отмеченные галочкой данные из выведенной таблицы удалить либо редактировать, на это есть 2 кнопки
Удаление я сделал так:
Код

$check=$_POST['check'];
if(!empty($check))
{ 
  $query = "("; 
  foreach($check as $val) $query .= "$val,"; 
  $query = substr($query, 0, strlen($query) - 1).")"; 
  $query = "DELETE FROM opcii WHERE id IN".$query; 
  if(!mysql_query($query)) 
    { 
       echo mysql_error()."<br>"; 
       echo $query."<br>"; 
    } 
}


а вот как устроить редактирование????

Автор: MoLeX 10.9.2008, 08:08
serialselfkiller, поиск рулит. зимой была очень большая тема по редактированию данных. в принципе делаешь вот так:
1. получаешь данные о том какую статью надо редактировать
2. вытаскиваешь ее из БД и помещаешь в текстовое поле
3. после нажатие кнопки сохраняешь.

Автор: serialselfkiller 10.9.2008, 08:38
Алгоритм я уяснил... у меня почему - то не выводятся данные в поле.
Выводил чекбоксы так:
Код

$sql = 'select * from table';
if (!$sql) exit (mysql_error());
$r = mysql_query($sql);
 while($t = mysql_fetch_array($r))  
  {
    echo "
             <tr>
             <td>&nbsp;<input type=\"checkbox\" name=\"check[]\" value=\"$t[id]\" /></td>
             <td>$t[options]</td>
             </tr>
         ";
   }


А вывожу данные в textarea с учетом выделенного чекбокса так:
Код

$check=$_POST['check'];
if(isset($edit))
{
      echo "
                <form id=\"form3\" name=\"form3\" method=\"post\" action=\"\">
                <textarea name=\"text\" id=\"text\" cols=\"45\" rows=\"5\">$check</textarea>
                </form>
           ";
}

В чем ошибка? выводит array

Автор: serialselfkiller 11.9.2008, 06:03
Вывел вот так:
Код

if(isset($edit))
{
      echo "
                <form id=\"form3\" name=\"form3\" method=\"post\" action=\"\">
                <textarea name=\"text\" id=\"text\" cols=\"45\" rows=\"5\">"; 
                foreach($_POST['check'] as $k => $id)
             {
                echo "$id ";
             }
             echo "</textarea>
                </form>
           ";
}    



Как теперь отследить исправления и сохранить???

Автор: MoLeX 11.9.2008, 10:52
1. а кнопку кто будет выводить?
2. после нажатия на кнопку проверяешь если данные в $_POST["text"] то заносишь данные в БД (UPDATE тебе нужен)

Автор: serialselfkiller 11.9.2008, 14:17
А как отследить какую именно запись апдейтить?

Автор: MoLeX 11.9.2008, 14:34
передавай в скрытом поле иди этой новости

Автор: serialselfkiller 12.9.2008, 16:21
Код

$check=$_POST['check'];
if(isset($save) && !empty($check))
{
    $query = "("; 
    foreach($check as $val) $query .= "$val,"; 
    $query = substr($query, 0, strlen($query) - 1).")"; 
    $query = "UPDATE options SET options='$ntext' WHERE id IN".$query; 
    if(!mysql_query($query)) 
      { 
         echo mysql_error()."<br>"; 
         echo $query."<br>"; 
      } 
} 


Вот таким кодом пытаюсь, апдейтить.... ничего не происходит, но и ошибок не выводит....
не пойму, что не так????
$ntext - это значения textarea

Автор: serialselfkiller 14.9.2008, 15:33
Код

if(isset($save) && !empty($hid))
{
    echo " hidden -  $hid"; // выводится  - > array
    $query = "("; 
    foreach($hid as $val) $query .= "$val,"; 
    $query = substr($query, 0, strlen($query) - 1).")"; 
    $query = "UPDATE options SET options='$ntext' WHERE id IN".$query; 
    if(!mysql_query($query)) 
      { 
         echo mysql_error()."<br>"; 
         echo $query."<br>"; 
      } 
      
} 


пишет что ошибка в foreach, хотя в $hid содержится массив.... не пойму почему не работает???

Автор: serialselfkiller 15.9.2008, 07:49
Ладно разобрался сам 8))) 

Код

if(isset($text3) && !empty($hid))
{ 
  $query = "UPDATE opcii SET options='$text3' WHERE options='$hid'"; 
  if(!mysql_query($query)) 
    { 
       echo mysql_error()."<br>"; 
       echo $query."<br>"; 
    } 
} 


Оказывается все было просто.... спасибо всем за помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)