За последние 24 часа нас посетили 18803 программиста и 1641 робот. Сейчас ищут 944 программиста ...

подскажите по редактированию БД

Тема в разделе "PHP для новичков", создана пользователем writer, 23 авг 2012.

  1. writer

    writer Активный пользователь

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    чет вообще запарился.и тут тему не нашел подходящую.можно сслыки покидать потому как находил когда то тему но не нужна была на тот момент а как понадобилась так не могу нати.
    вот пример формы упрощенный
    Код (Text):
    1. тут подключение к БД
    2. while ($sql_data = mysql_fetch_array($sql)) {
    3.  echo '<tr '.$fon.' ><td id="one">'.$sql_data['id'].$td.'<input type="text" style="width:40px;" value="'.$sql_data['IPul'].'"></input>'.$td.$sql_data['IPpom'].$td.$sql_data['Analogul'].$td.$sql_data['Analogpom'].$td.$sql_data['kabel'].$td.$sql_data['micro'].$td.$sql_data['pomenie'].$td.$sql_data['rabota'].$td.$sql_data['datareal'].$td.$sql_data['dataold'].$td.$sql_data['city'].$tda.$sql_data['name'].$tda.$sql_data['firstname'].$tda.$sql_data['lastname'].$tda.$sql_data['email'].$tda.$sql_data['adress'].$tda.$sql_data['tel'].$tda.$sql_data['namefirm'].$tda.$sql_data['lico'].$tda.'
    4.  
    5. //вот участок который добавил в рабочую форму
    6. <select size="1" name="status">
    7. <option value="1">на модерацию</option>
    8. <option value="2">проверена</option>
    9. <option value="3">выполнена</option>
    10. </select>'
    11.  
    12. .$tda.'<a href="del.php?id=' . $sql_data['id'] . '"><img src="..\img\deletered.png" Width="25" Height="25" ></a></td><td><a href="admintenderaction.php?id=' . $sql_data['id'] . '">Редактировать</a></td></tr>';
    13. }
    потом это отсылается в обработчик после нажатия "редактировать"

    И сам обработчик
    Код (Text):
    1. //Подключение в БД
    2. //Обозначение переменных
    3. $status = $_POST['status'];
    4. ...
    5.  
    6. $result = mysql_query("INSERT INTO `formzakaz` (lico,namefirm,adress,tel,email,name,firstname,lastname,IPul,IPpom,Analogul,Analogpom,micro,kabel,datareal,dataold,rabota,pomenie,city) VALUES('$lico','$namefirm','$adress','$tel','$email','$name','$firstname','$lastname','$IPul','$IPpom','$Analogul','$Analogpom','$micro','$kabel','$datareal','$dataold','$rabota','$pomenie','$city')");
    7.  
    8. if(!$result) echo 'Запись не добавлена';
    9. if($result) echo '<script type="text/javascript">
    10.     alert("Запись успешно добавлена!");
    11. </script>';
    и после обработки выдает что не найдены переменные
    Notice: Undefined index: lico in I:\minitender\php\admintenderaction.php on line 23
    и так все.
    БД выбрана та. Грешил что не все данные в input занес. тоесть некоторые <p></p> заведены. но и ту что в инпут засунул тоже с ошибкой выводится...
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А каким образом ты передаешь значение lico обработчику?
    Что то я этого не вижу...
     
  3. writer

    writer Активный пользователь

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    в INSERT INTO забыл засунуть еще. засунул и ошибка так и осталась

    Добавлено спустя 2 минуты 14 секунд:
    Код (Text):
    1. <a href="admintenderaction.php?id=' . $sql_data['id'] . '">
    эта строчка передает только id ?)))
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Я вижу как ты передаешь status
     
  5. writer

    writer Активный пользователь

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    ну я просто все не стал в примере писать чтобы страницу не раздувать. могу все коды выслать
     
  6. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Проблема в том что значение lico не передается обработчику.
    Исправь это и все будет работать.
     
  7. writer

    writer Активный пользователь

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    Код (Text):
    1. <a href="admintenderaction.php?id=' . $sql_data['id'] .$sql_data['lico'].'">Редактировать</a></td></tr>';
    так имеешь в виду? или как передать то еще?

    Добавлено спустя 12 минут 26 секунд:
    Это форма
    Код (Text):
    1. <?php
    2.  
    3.  
    4.  
    5.  
    6.  
    7. // данные доступа к базе данных
    8. $db_host="127.0.0.1";   // обычно не нужно изменять
    9. $db_user="root";    // имя пользователя БД
    10. $db_password="";    // пароль БД
    11. $db_name = "zakaz";  // имя БД
    12. $table_name = "formzakaz";   // имя таблицы статистики
    13.  
    14.  
    15.  
    16.  
    17. // соединение с БД
    18. mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());
    19. mysql_select_db($db_name) or die (mysql_error());
    20. mysql_query("SET NAMES 'cp1251'");
    21. mysql_query("SET CHARACTER SET 'cp1251'");
    22.  
    23. // Выполняем запрос: выбрать ID пользователей, которые посетили приложение более 10 раз
    24. $query = 'SELECT * FROM `'.$table_name.'` WHERE `id`;';
    25. $sql = mysql_query($query);
    26.  
    27. // обрабатываем полученный результат
    28. // если нужно, то узнаем количество выбранных значений
    29. $td = '</td><td id="tho">';
    30. $tda = '</td><td id="admin">';
    31. $num_rows = mysql_num_rows($sql);
    32.  
    33.  echo '<div id="lost">
    34. <table>
    35. <tr><td id="one">№</td><td id="tho">IP личные</td><td id="tho">IP в помещении</td><td id="tho">Аналоговые уличные</td><td id="tho">Аналоговые в помещении</td><td id="tho">кол-во кабеля</td><td id="tho">кол-во микрофонов</td><td id="tho">хар-ки помещения</td><td id="tho">описание помещения</td><td id="tho">дата подачи</td><td id="tho">дата сдачи</td><td id="tho">город</td><td id="admin">Имя</td><td id="admin">Фамилия</td><td id="admin">Отчество</td><td id="admin">Почта</td><td id="admin">адресс</td><td id="admin">телефон</td><td id="admin">название</td><td id="admin">фирмы</td><td>Статус</td><td id="admin"><img src="..\img\deletered.png" Width="25" Height="25" ></td><td>Редактировать</td>
    36. </tr>';
    37. // выводим данные
    38. while ($sql_data = mysql_fetch_array($sql)) {
    39. if($sql_data['status'] == 1) // Статус заявки выполнен
    40.      {
    41.            $fon = 'style="background-color: "';
    42.      }
    43.      else
    44.      {
    45.            $fon = 'style="background-color:IndianRed  "';
    46.      }
    47.      
    48.     echo '<tr '.$fon.' ><td id="one">'.$sql_data['id'].$td.'<input type="text" style="width:40px;" value="'.$sql_data['IPul'].'"></input>'.$td.$sql_data['IPpom'].$td.$sql_data['Analogul'].$td.$sql_data['Analogpom'].$td.$sql_data['kabel'].$td.$sql_data['micro'].$td.$sql_data['pomenie'].$td.$sql_data['rabota'].$td.$sql_data['datareal'].$td.$sql_data['dataold'].$td.$sql_data['city'].$tda.$sql_data['name'].$tda.$sql_data['firstname'].$tda.$sql_data['lastname'].$tda.$sql_data['email'].$tda.$sql_data['adress'].$tda.$sql_data['tel'].$tda.$sql_data['namefirm'].$tda.$sql_data['lico'].$tda.'<select size="1" name="status">
    49. <option value="1">на модерацию</option>
    50. <option value="2">проверена</option>
    51. <option value="3">выполнена</option>
    52. </select>'.$tda.'<a href="del.php?id=' . $sql_data['id'] . '"><img src="..\img\deletered.png" Width="25" Height="25" ></a></td><td><a href="admintenderaction.php?id=' . $sql_data['id'] . '">Редактировать</a></td></tr>';
    53. }
    54. $fon = $sql_data['status'];
    55. while ($sql_data = mysql_fetch_array($sql)) {
    56.     echo $sql_data['city'].' '.$sql_data['id'].'<br />';
    57. }
    58.  
    59.  
    60.  
    61.  echo '
    62.  
    63. </table>
    64. </div id="lost">
    65. </body>
    66. </html>';
    67. ?>
    Это обработчик
    Код (Text):
    1. <?php
    2.  
    3. $db_host="127.0.0.1";   // обычно не нужно изменять
    4. $db_user="root";    // имя пользователя БД
    5. $db_password="";    // пароль БД
    6. $db_name = "zakaz";  // имя БД
    7. $table_name = "formzakaz";   // имя таблицы статистики
    8.  
    9.  
    10.  
    11.  
    12. // соединение с БД
    13. mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());
    14. mysql_select_db($db_name) or die (mysql_error());
    15. mysql_query("SET NAMES 'cp1251'");
    16. mysql_query("SET CHARACTER SET 'cp1251'");
    17.  
    18. // Выполняем запрос: выбрать ID пользователей, которые посетили приложение более 10 раз
    19. $query = 'SELECT * FROM `'.$table_name.'` WHERE `id`;';
    20. $sql = mysql_query($query);
    21.  
    22.  
    23. $lico = $_POST['lico'];
    24. $namefirm = $_POST['namefirm'];
    25. $adress = $_POST['adress'];
    26. $tel = $_POST['tel'];
    27. $email =  $_POST['email'];
    28. $name = $_POST['name'];
    29. $firstname = $_POST['firstname'];
    30. $lastname = $_POST['lastname'];
    31. $IPul = $_POST['IPul'];
    32. $IPpom = $_POST['IPpom'];
    33. $Analogul = $_POST['Analogul'];
    34. $Analogpom = $_POST['Analogpom'];
    35. $micro = $_POST['micro'];
    36. $kabel =  $_POST['kabel'];
    37. $datareal = $_POST['datareal'];
    38. $dataold = $_POST['dataold'];
    39. $rabota = $_POST['rabota'];
    40. $pomenie = $_POST['pomenie'];
    41. $city = $_POST['city'];
    42. $status = $_POST['status'];
    43.  
    44.  
    45. $db_host='127.0.0.1';// ваш адрес где находится, хостится ваша база данных
    46.     $db_login='root';// логин доступ к базе данных
    47.     $db_pass='';// пароль доступа к базе данных
    48.     $db_name='zakaz';// Имя базы данных с которой вы хотите работать, так как их может быть множество
    49.     $db = mysql_connect($db_host,$db_login,$db_pass);
    50.         if(!$db) echo 'Ошибка подключения'; // Нужно быть уверенным, что подключение удачно
    51.     mysql_select_db($db_name);
    52. mysql_query("SET NAMES 'cp1251'");
    53. mysql_query("SET CHARACTER SET 'cp1251'");
    54.  
    55. $result = mysql_query("INSERT INTO `formzakaz` (lico,namefirm,adress,tel,email,name,firstname,lastname,IPul,IPpom,Analogul,Analogpom,micro,kabel,datareal,dataold,rabota,pomenie,city,status) VALUES('$lico','$namefirm','$adress','$tel','$email','$name','$firstname','$lastname','$IPul','$IPpom','$Analogul','$Analogpom','$micro','$kabel','$datareal','$dataold','$rabota','$pomenie','$city','$status')");
    56.  
    57. if(!$result) echo 'Запись не добавлена';
    58. if($result) echo '<script type="text/javascript">
    59.     alert("Запись успешно добавлена!");
    60. </script>';
    61.  
    62. ?>
     
  8. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Код (Text):
    1.  
    2. $td.$sql_data['IPpom'].$td.$sql_data['Analogul'].$td.$sql_data['Analogpom'].$td.$sql_data['kabel'].$td.$sql_data['micro'].$td.$sql_data['pomenie'].$td.$sql_data['rabota'].$td.$sql_data['datareal'].$td.$sql_data['dataold'].$td.$sql_data['city'].$tda.$sql_data['name'].$tda.$sql_data['firstname'].$tda.$sql_data['lastname'].$tda.$sql_data['email'].$tda.$sql_data['adress'].$tda.$sql_data['tel'].$tda.$sql_data['namefirm'].$tda.$sql_data['lico'].$tda
    Как я понимаю этим ты создаешь таблицу где выводишь значение lico. Но опять не вижу как ты его передаешь...
     
  9. writer

    writer Активный пользователь

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    Код (Text):
    1. <input type="text" style="width:40px; "name="lico" value="'.$sql_data['lico'].'" ></input>
    Просто код не дописан с инпутами. пусть будет так. но все равно выдает ошибку.
    В обработчике идет
    $lico = $_POST['lico'];
    то есть вывел данные из таблицы в инпут. отредактировал и с кнопки отправил данные на обработчик?
     
  10. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Ну где то косяк, в твоих кусках кода я до сих пор не вижу как ты отсылаешь.

    Но раз тебе PHP говорит Undefined index: lico значить не посылаешь.
    Хочешь для проверки посмотри в FF Tamper Data что ты посылаешь.
     
  11. writer

    writer Активный пользователь

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    Код (Text):
    1. <?php include 'admin.php'; ?>
    2. <?php
    3. echo '<html><meta http-equiv="Content-Type" content="text/html; charset=cp1250_general_ci">
    4. <head>
    5.  
    6.  <style type="text/css">
    7.           table{
    8.           height:10px;       
    9.           }
    10.          
    11.           td{
    12.          
    13.            border:solid 1px grey;
    14.          color:#003366;
    15.         font: 15px Courier New;
    16.          height: 2em;
    17.  
    18.           }
    19.           td#one{
    20.            width:40px;
    21.           }
    22.           td#tho{
    23.             width:200px;
    24.           }
    25.           td#one{
    26.            width:20px;
    27.           }
    28.           td#admin {
    29.          
    30.             width:200px;
    31.             background-color:AliceBlue ;
    32.           }
    33.         </style>
    34. </head>
    35. <body>'?>
    36.  
    37. <?php
    38.  
    39.  
    40.  
    41.  
    42.  
    43. // данные доступа к базе данных
    44. $db_host="127.0.0.1";   // обычно не нужно изменять
    45. $db_user="root";    // имя пользователя БД
    46. $db_password="";    // пароль БД
    47. $db_name = "zakaz";  // имя БД
    48. $table_name = "formzakaz";   // имя таблицы статистики
    49.  
    50.  
    51.  
    52.  
    53. // соединение с БД
    54. mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());
    55. mysql_select_db($db_name) or die (mysql_error());
    56. mysql_query("SET NAMES 'cp1251'");
    57. mysql_query("SET CHARACTER SET 'cp1251'");
    58.  
    59. // Выполняем запрос: выбрать ID пользователей, которые посетили приложение более 10 раз
    60. $query = 'SELECT * FROM `'.$table_name.'` WHERE `id`;';
    61. $sql = mysql_query($query);
    62.  
    63. // обрабатываем полученный результат
    64. // если нужно, то узнаем количество выбранных значений
    65. $td = '</td><td id="tho">';
    66. $tda = '</td><td id="admin">';
    67. $num_rows = mysql_num_rows($sql);
    68.  
    69.  echo '<div id="lost">
    70. <table>
    71. <tr><td id="one">№</td><td id="tho">IP уличные</td><td id="tho">IP в помещении</td><td id="tho">Аналоговые уличные</td><td id="tho">Аналоговые в помещении</td><td id="tho">кол-во кабеля</td><td id="tho">кол-во микрофонов</td><td id="tho">хар-ки помещения</td><td id="tho">описание помещения</td><td id="tho">дата подачи</td><td id="tho">дата сдачи</td><td id="tho">город</td><td id="admin">Имя</td><td id="admin">Фамилия</td><td id="admin">Отчество</td><td id="admin">Почта</td><td id="admin">адресс</td><td id="admin">телефон</td><td id="admin">название</td><td id="admin">фирмы</td><td>Статус</td><td id="admin"><img src="..\img\deletered.png" Width="25" Height="25" ></td><td>Редактировать</td>
    72. </tr>';
    73. // выводим данные
    74. while ($sql_data = mysql_fetch_array($sql)) {
    75. if($sql_data['status'] == 1) // Статус заявки выполнен
    76.      {
    77.            $fon = 'style="background-color: "';
    78.      }
    79.      else
    80.      {
    81.            $fon = 'style="background-color:IndianRed  "';
    82.      }
    83.      
    84.     echo '<form  action="admintenderaction.php" method="post" > <tr '.$fon.' ><td id="one">'.$sql_data['id'].$td.'
    85.     <input type="text" style="width:40px; "name="IPul" value="'.$sql_data['IPul'].'" ></input>
    86.     '.$td.'<input type="text" name="IPpom" value="'.$sql_data['IPpom'].'" ></input>
    87.     '.$td.'<input type="text" name="Analogul" value="'.$sql_data['Analogul'].'" ></input>
    88.     '.$td.'<input type="text" name="Analogpom" value="'.$sql_data['Analogpom'].'" ></input>
    89.     '.$td.'<input type="text" name="kabel" value="'.$sql_data['kabel'].'" ></input>
    90.     '.$td.'<input type="text" name="micro" value="'.$sql_data['micro'].'" ></input>
    91.     '.$td.'<input type="text" name="pomenie" value="'.$sql_data['pomenie'].'" ></input>
    92.     '.$td.'<input type="text" name="rabota" value="'.$sql_data['rabota'].'" ></input>
    93.     '.$td.'<input type="text" name="datareal" value="'.$sql_data['datareal'].'" ></input>
    94.     '.$td.'<input type="text" name="dataold" value="'.$sql_data['dataold'].'" ></input>
    95.     '.$td.'<input type="text" name="city" value="'.$sql_data['city'].'" ></input>
    96.     '.$tda.'<input type="text" name="name" value="'.$sql_data['name'].'" ></input>
    97.     '.$tda.'<input type="text" name="firstname" value="'.$sql_data['firstname'].'" ></input>
    98.     '.$tda.'<input type="text" name="lastname" value="'.$sql_data['lastname'].'" ></input>
    99.     '.$tda.'<input type="text" name="email" value="'.$sql_data['email'].'" ></input>
    100.     '.$tda.'<input type="text" name="adress" value="'.$sql_data['adress'].'" ></input>
    101.     '.$tda.'<input type="text" name="tel" value="'.$sql_data['tel'].'" ></input>
    102.     '.$tda.'<input type="text" name="namefirm" value="'.$sql_data['namefirm'].'" ></input>
    103.     '.$tda.'<input type="text" name="lico" value="'.$sql_data['lico'].'" ></input>
    104.     '.$tda.'<select size="1" name="status">
    105. <option value="1">на модерацию</option>
    106. <option value="2">проверена</option>
    107. <option value="3">выполнена</option>
    108. </select>
    109.     '.$tda.'<a href="del.php?id=' . $sql_data['id'] . '"><img src="..\img\deletered.png" Width="25" Height="25" ></a></td><td><a href="admintenderaction.php?id=' . $sql_data['id'] . '">Редактировать</a></td></tr>';
    110. }
    111. $fon = $sql_data['status'];
    112. while ($sql_data = mysql_fetch_array($sql)) {
    113.     echo $sql_data['city'].' '.$sql_data['id'].'<br />';
    114. }
    115.  
    116.  
    117.  
    118.  echo '
    119.  
    120. </table>
    121. </div id="lost">
    122. </body>
    123. </html>';
    124. ?>
    обработчик
    Код (Text):
    1. <?php
    2. include_once("admintender.php");
    3. $db_host="127.0.0.1";   // обычно не нужно изменять
    4. $db_user="root";    // имя пользователя БД
    5. $db_password="";    // пароль БД
    6. $db_name = "zakaz";  // имя БД
    7. $table_name = "formzakaz";   // имя таблицы статистики
    8.  
    9.  
    10.  
    11.  
    12. // соединение с БД
    13. mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());
    14. mysql_select_db($db_name) or die (mysql_error());
    15. mysql_query("SET NAMES 'cp1251'");
    16. mysql_query("SET CHARACTER SET 'cp1251'");
    17.  
    18. // Выполняем запрос: выбрать ID пользователей, которые посетили приложение более 10 раз
    19. $query = 'SELECT * FROM `'.$table_name.'` WHERE `id`;';
    20. $sql = mysql_query($query);
    21.  
    22. include_once("admintender.php");
    23. if (isset($_POST['submit']))
    24. {
    25. if(empty($_POST['lico']))
    26. {
    27. echo $p.'<script type="text/javascript">
    28.     alert("Вы не написали фирма ли у вас");
    29. </script>'.$pc;
    30. }
    31.  
    32. else
    33. {
    34. $lico = $_POST['lico'];
    35. $namefirm = $_POST['namefirm'];
    36. $adress = $_POST['adress'];
    37. $tel = $_POST['tel'];
    38. $email =  $_POST['email'];
    39. $name = $_POST['name'];
    40. $firstname = $_POST['firstname'];
    41. $lastname = $_POST['lastname'];
    42. $IPul = $_POST['IPul'];
    43. $IPpom = $_POST['IPpom'];
    44. $Analogul = $_POST['Analogul'];
    45. $Analogpom = $_POST['Analogpom'];
    46. $micro = $_POST['micro'];
    47. $kabel =  $_POST['kabel'];
    48. $datareal = $_POST['datareal'];
    49. $dataold = $_POST['dataold'];
    50. $rabota = $_POST['rabota'];
    51. $pomenie = $_POST['pomenie'];
    52. $city = $_POST['city'];
    53. $status = $_POST['status'];
    54.  
    55.  
    56. $db_host='127.0.0.1';// ваш адрес где находится, хостится ваша база данных
    57.     $db_login='root';// логин доступ к базе данных
    58.     $db_pass='';// пароль доступа к базе данных
    59.     $db_name='zakaz';// Имя базы данных с которой вы хотите работать, так как их может быть множество
    60.     $db = mysql_connect($db_host,$db_login,$db_pass);
    61.         if(!$db) echo 'Ошибка подключения'; // Нужно быть уверенным, что подключение удачно
    62.     mysql_select_db($db_name);
    63. mysql_query("SET NAMES 'cp1251'");
    64. mysql_query("SET CHARACTER SET 'cp1251'");
    65.  
    66. $result = mysql_query("INSERT INTO `formzakaz` (lico,namefirm,adress,tel,email,name,firstname,lastname,IPul,IPpom,Analogul,Analogpom,micro,kabel,datareal,dataold,rabota,pomenie,city,status) VALUES('$lico','$namefirm','$adress','$tel','$email','$name','$firstname','$lastname','$IPul','$IPpom','$Analogul','$Analogpom','$micro','$kabel','$datareal','$dataold','$rabota','$pomenie','$city','$status')");
    67. $back = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'admintender.php';
    68. header("Location: {$back}");
    69. if(!$result) echo 'Запись не добавлена';
    70. if($result) echo '<script type="text/javascript">
    71.     alert("Запись успешно добавлена!");
    72. </script>';
    73. }}
    74. ?>
    Все ошибки ушли но не меняются значения. Не могу понять почему...может запрос к БД не правильный или соединения чтоли нету? вроде в начале подключения ничего не выдает

    Добавлено спустя 50 минут 30 секунд:
    где я затупил то?