Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите создать алгоритм... Изменения записей таблицы 
:(
    Опции темы
Ground
Дата 2.10.2006, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 27.2.2006
Где: Комсомольск

Репутация: нет
Всего: 1



Вообщем написал добавление записей в таблицу, чтение, теперь помогите создать алгоритм изменения значений таблицы.
Как это лучше сделать? по индексу? Или вывести все записи, и как нибудь рядом сделать кнопку правка?
PM MAIL ICQ   Вверх
helflip
Дата 2.10.2006, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Вот мой код. Редактирование и удаление пользователей из базы 

Код

<html>
<head>
<body>
<?php

$title="--=Редактирование пользователя по имени=--";

$msconnect=mssql_connect("ххх","ххх","");
$msdb=mssql_select_db('[sample_db]',$msconnect); 
$msquery0 = "SELECT * FROM [user]";
$msresults0 = mssql_query($msquery0);
    
//Удаление пользователя
if (isset($_POST['delete']) and $_POST['delete'] == 'Delete')
 {    
    if (isset($_POST['id_us']))
    {
        $iu=$_POST['id_us'];
        while ($row3= mssql_fetch_array($msresults0))
        {
                 
    
    $q2 = "DELETE FROM [user]
           WHERE N = '$iu'";
        

     @mssql_query($q2) or die("Error!!! Чего то не работает!!!"); 
     echo "Запись успешно удалена";
        }
     
 }
 }




//Обновление пользователя
if (isset($_POST['save']) and $_POST['save'] == 'Save')
 {    
    if (isset($_POST['edit_ui']))
    {
        $iu=$_POST['edit_ui'];
        
    while ($row3= mssql_fetch_array($msresults0))
        {
        
                $user_id = $_POST['user_id']; 
                $user_mail = $_POST['user_mail'];
                $user_position = $_POST['user_position'];
                $user_profile = $_POST['user_profile'];
                
    
    $q2 = "UPDATE [user]
           SET userid = '".addslashes($user_id)."',
               usermail = '".addslashes($user_mail)."',
               userposition = '".addslashes($user_position)."',
              userprofile = '".addslashes($user_profile)."'
            WHERE N = '$iu'";
        

     mssql_query($q2) or die("Error!!! Чего то не работает!!!"); 
     }
 }
 }


if (isset($_POST['edit']) and $_POST['edit'] == 'Edit')
 { 
    
    $n_s = $_POST['id_us']; 
    $q     = "SELECT * FROM [user] WHERE N = '".$n_s."';";

    @$msresults1 = mssql_query($q) or die("Error"); 
    
    while ($row0= mssql_fetch_array($msresults1))    {
    ?>
    <form action="" method="POST">
    <p><font color="Green" size="8">Измените данные пользователя и нажмите Save</font></p>
    <table width="100%" align="center" bgcolor="Gray" border="5">
   <tr bgcolor="Navy">
    <td align="center"><B><font color="Silver" size="3">Имя пользователя</td></b></font>
    <td align="center"><B><font color="Silver" size="3">E-mail пользователя</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Местонахождение</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Прочее</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Управление</td></b></font>
   </tr>
   <td align="center"><input type="hidden" name="edit_ui" value="<?=$_POST['id_us']?>"></td>
   <tr bgcolor="Gray">
    <td align="center"><input type="text" name="user_id" value="<?=$row0['userid']?>"></td>
    <td align="center"><input type="text" name="user_mail" value="<?=$row0['usermail']?>"></td>
    <td align="center"><input type="text" name="user_position" value="<?=$row0['userposition']?>"></td>
    <td align="center"><input type="text" name="user_profile"  value="<?=$row0['userprofile']?>"></td>
    <td align="center"><input type="submit" name="save" value="Save">
    
    </td>
   </tr>
    
    
    
    </form>
<?php
 }
 }
 
 
 //при нажатии на клавишу поиск
if (isset($_POST['search']) and $_POST['search'] == 'Поиск')
 { 
    
    
    $n_s = $_POST['n_s']; 
    $q     = "SELECT * FROM [user] WHERE userid = '".$n_s."';";

    @$msresults1 = mssql_query($q) or die("Error"); 
        
?>

  <table width="100%" align="center" bgcolor="Gray" border="5">
   <tr bgcolor="Navy">
    <td align="center"><B><font color="Silver" size="3">Имя пользователя</td></b></font>
    <td align="center"><B><font color="Silver" size="3">E-mail пользователя</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Местонахождение</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Прочее</td></b></font>
    <td align="center"><B><font color="Silver" size="3">Управление</td></b></font>
<?php    
while ($row0= mssql_fetch_array($msresults1))    {
?>    
 <form action="" method="POST">
     <tr><td width="10%"> <?php echo "<b>".$row0['userid']."</b>"."</td>"."<td>".$row0['usermail']."</td>"."<td>".$row0['userposition']."</td>"."<td>".$row0['userprofile']."</td>";

//тут берется переменная  id_user
    ?><td align="center">    

        <input type="hidden" name="id_us" value="<?=$row0['N']?>">
        <input type="submit" name="edit" value="Edit">
        <input type="submit" name="delete" value="Delete"> 


      </td>
     </tr>
     </form>
    <?php          
     }
    }
 

?>
      <center><B><font color="Red" size="4">По какому полю найти пользователя для редактирования</font>
          </b>
  </center>
  <br>
  <table width="100%" align="center" bgcolor="Gray" border="5">

  
  <tr bgcolor="Navy">
     <a href="name_edit.php"><td align="center"id="cel" onmouseout="javascript:document.getElementById('cel').style.background='Navy'" onmouseover="javascript:document.getElementById('cel').style.background='red'"><B><font color="Silver" size="3">Имя пользователя</td></font></a>
     <a href="email_edit.php"><td align="center" id="cel1" onmouseout="javascript:document.getElementById('cel1').style.background='Navy'" onmouseover="javascript:document.getElementById('cel1').style.background='red'"><B><font color="Silver" size="3">E-mail пользователя</td></font>
     <a href="location_edit.php"><td align="center" id="cel2" onmouseout="javascript:document.getElementById('cel2').style.background='Navy'" onmouseover="javascript:document.getElementById('cel2').style.background='red'"><B><font color="Silver" size="3">Местонахождение</td></font>
     <a href="other_edit.php"><td align="center" id="cel3" onmouseout="javascript:document.getElementById('cel3').style.background='Navy'" onmouseover="javascript:document.getElementById('cel3').style.background='red'"><B><font color="Silver" size="3">Прочее</td></font>
  </table>
    <form action="" method="POST">
    <table> 
    <tr bgcolor="Gray">
        <td>
        <td align="center"><input type="text" name="n_s" ></td>
        <td align="center"><input type="submit" name="search" value="Поиск"></td>
        </td>
     </tr>
     </form>
     <?php 

//шаблон
include_once"template.php";
?>
</a>
</table>
</body>
</head>
</html>

--------------------
 
PM MAIL   Вверх
Ground
Дата 2.10.2006, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 27.2.2006
Где: Комсомольск

Репутация: нет
Всего: 1



Конечно спасибо, но мне нужен алгоритм. Ну не знаю я, как лучше осуществить изменение записей. Сам процесс изменения не сложен, UpDate. Но как сделать, чтобы это было очень удобно обычному пользователю???
PM MAIL ICQ   Вверх
helflip
Дата 2.10.2006, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



У тя есть база с пользователями.
Выводишь их списком, только не простым а ввиде ссылок(т.е. когда нажимаешь на юзера выводится инфа о нем)
выводишь инфу о этом юзере в форму и делаешь 2 кнопки Делит и Едит.
На делит вешаешь СКЛ запрос с подтверждением (для красоты JS используй)
На едит вешай новую форму и в ней береш данные которые уже занесены в базу, выводишь их как и в первой форме, но в текстовых полях (т.е. чтобы удобно было править) и делаешь вместо 2-х кнопок едит и делит одну SAVE
На нее так же вешаешь СКЛ и так же для красоты JS (Данные успешно сохранены или чето в этом роде)
и везде зделай кнопочку назад

Помойму удобно получится
--------------------
 
PM MAIL   Вверх
sOckets
Дата 2.10.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ЖгуПоПонедельникам
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 24.8.2006
Где: ws2.lib

Репутация: нет
Всего: 2



Какая разница как удобно юзеру , UPDATE он и в африке UPDATE , не забывайте об безопастности.

Добавлено @ 14:16 
Дополню , я делал так , редактирование юзеров по ID , то есть выходит весь список юзеров (по страничкам или как тебе удобно) , в виде таблицы , где в самом последнем столбце , 2 ссылки
EDIT | DELETE  , а потом там просто пришемай ID (только проверь что этот ID действительно его) и выводи форму с его данными.


--------------------
Я Будущий сотрудник Google Inc. Юзаем Google Code Search для поиска исходников. Юзаем GMail как почту.
PM   Вверх
ZlojEzh
Дата 3.10.2006, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



удобно использовать один запрос и на изменение записи, и на ее добавление
выглядит приблизительно так
форма:
[code=php]
<form action='save.php' nethod='post'>
<input type='hidden' name='REC
Код
' value='<?=@$REC['code']?>'>
<input type='text' name='REC[val1]' value='<?=@$REC['val1']?>'>
<input type='text' name='REC[val2]' value='<?=@$REC['val2']?>'>
<input type='submit' value='save'>
</form>

в случае редактирования форме в массиве $REC передается элемент из базы
в случае добавления - пустой массив

save.php:
Код
  
  $vals_str = '';
  foreach ($_POST['REC'] as $field => $value) {
     $vals_str .= "`".mysql_escape_string($field)."`='".mysql_escape_string($value)."', ";
  }
  $vals_str = trim($vals_str, ', ');
  $query = "insert into `table` set $vals_str on duplicate key update $vals_str";
  mysql_query($query);


работает, само собой, только если code - autoincrement, primary(unique) key

раньше отдельные запросы использовал - неудобно было
для сохранения каждого объекта - по 20 строчек кода

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.