За последние 24 часа нас посетили 18292 программиста и 1597 роботов. Сейчас ищут 860 программистов ...

Выборка записей из таблицы! ПОМОГИТЕ с ПРОБЛЕМОЙ В КОДЕ!!!

Тема в разделе "PHP и базы данных", создана пользователем Dimitry_LD, 30 янв 2011.

  1. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    В чём у меня ошибка тут, почему выводит по 1 записи из таблицы, вместо всех?


    PHP:
    1.  <html>
    2.  <HEAD>
    3.  <META http-equiv=content-type content="text/html; charset=windows-1251">
    4.  </HEAD>
    5.  <body bgcolor = "0d6666">
    6.  <br><br><br><br><br>
    7.  <center><h2>Формы</h2></center>
    8.  <table align="center"border=5>
    9.  <tr align="center">
    10.  <td><font color="77dd77"><font size="3px"><b>Название формы:</b></font></font></td>
    11.  <td><font color="77dd77"><font size="3px"><b>Сроки обработки:</b></font></font></td>
    12.  <td><font color="77dd77"><font size="3px"><b>Отдел</b></font></font></td>
    13.  <td><font color="77dd77"><font size="3px"><b>Сотрудник</b></font></font></td>
    14.  <td><font color="ff00gg"><font size="3px"><b>Редактирование</b></font></font></td>
    15.  
    16.  </tr>
    17.  <?php
    18.  $link = mysql_connect("localhost", "root","")
    19.        or die("Could not connect");
    20.  mysql_select_db("stat_forms") or die("Could not select database");
    21.  
    22.  
    23.  $ath = mysql_query("SELECT * FROM forms ORDER BY nazv");
    24.  if($ath)
    25.  
    26.  while($form = mysql_fetch_array($ath))
    27.  {
    28.              $form_id=$form['id'];
    29.              $form_nazv=$form['nazv'];
    30.              $form_obr=$form['period_obr'];
    31.              $form_otdel=$form['otdel'];
    32.              $form_id_name=$form['id_sotr'];
    33.  }
    34.  
    35.  
    36.  $ath2 = mysql_query("SELECT * FROM name WHERE id=".$form_id_name);
    37.  if($ath2)
    38.  
    39.  while($sotr = mysql_fetch_array($ath2))
    40.  {
    41.              $sotr_fam=$sotr['fam'];
    42.  }
    43.  
    44.  {
    45.  echo "<tr><td><font color=\"00cccc\">".$form_nazv."</font></td><td><font color=\"00cccc\">".$form_obr."</font></td><td><font color=\"00cccc\">".$form_otdel."</font></td><td><font color=\"00cccc\">".$sotr_fam."</font></td>
    46.  <td><a href=editform_form.php?id=".$form_id.">Редактировать</a></td></tr>";
    47.  }
    48.  
    49.  
    50.  
    51.  echo "</table>";
    52.  ?>
    53.  
    54.  
    55.  </table>
    56.  </body>
    57.  </html>

    И ещё одно!
    Почему у меня на просмотре структуры таблицы, слова с использованием пробелов не выводятся корректно, т.е. Если я ввёл где то "Начальник отдела", то на просмотр у меня выводит лишь слово "Начальник", а "отдела" просто исчезает! Как это понять??
    ?
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Потому что переменная перезаписывается в цикле.
     
  3. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Какая именно переменная??

    И там ещё второй вопрос на счёт пробелов есть!
     
  4. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Dimitry_LD
    отвечу на первый вопрос:


    допустим в базе имеется таблица nazv с двумя записями:
    возьмём кусочек кода запроса в базу, упрощённый для наглядности:

    PHP:
    1. <?php
    2.   $ath = mysql_query("SELECT * FROM forms ORDER BY nazv");
    3.   if($ath){
    4.     while($form = mysql_fetch_array($ath)){
    5.       $form_id = $form['id'];
    6.       $form_id_name = $form['id_sotr'];
    7.     }
    8.   }
    9. ?>
    Выполняем код и получаем в итоге:
    $form_id = 2; $form_id_name = 14.

    и тут же "О, Боже, Боже! Что случилось с первой записью?"

    давайте разберём код по частям - запрос возвращает нам 2 записи, так?

    $form = mysql_fetch_array($ath) возвращает нам первую запись 1 | 12,
    $form_id становится 1, а $form_id_name - 12.

    затем цикл продолжается и $form = mysql_fetch_array($ath)
    возвращает нам вторую запись 2 | 14 и, вот блин, пи-пи-пи... (*censored*)
    фокус-покус: $form_id становится 2, а $form_id_name - 14.

    затем цикл прекращается - записей в базе больше нет.

    Вывод - такой код всегда будет возвращать нам только последнюю запись.
     
  5. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Ок, я вас понял, в таком случае, подскажите, как правильно надо записать, чтобы всё выводилось корректно?
     
  6. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) блок кода, выполняющийся при выполнении условия if($ath) нужно заключить в фигурные скобки
    2) формирование строки таблицы нужно проводить внутри цикла while($form = mysql_fetch_array($ath))

    PHP:
    1.  
    2. $ath = mysql_query("SELECT * FROM forms ORDER BY nazv");
    3. if($ath)
    4. {
    5.     while($form = mysql_fetch_array($ath))
    6.     {
    7.         $form_id=$form['id'];
    8.         $form_nazv=$form['nazv'];
    9.         $form_obr=$form['period_obr'];
    10.         $form_otdel=$form['otdel'];
    11.         $form_id_name=$form['id_sotr'];
    12.         $ath2 = mysql_query("SELECT * FROM name WHERE id=".$form_id_name);
    13.         if($ath2)
    14.         {
    15.             while($sotr = mysql_fetch_array($ath2))
    16.             {
    17.                 $sotr_fam=$sotr['fam'];
    18.             }
    19.             echo "<tr><td><font color=\"00cccc\">".$form_nazv."</font></td><td><font color=\"00cccc\">".$form_obr."</font></td><td><font color=\"00cccc\">".$form_otdel."</font></td><td><font color=\"00cccc\">".$sotr_fam."</font></td>
    20.           <td><a href=editform_form.php?id=".$form_id.">Редактировать</a></td></tr>";
    21.         }
    22.     }
    23. }
    24.  
    3) второй вопрос вообще непонятен -
    структура таблицы - это описания полей, а не то, что в них хранится
    В чем ты просматриваешь?
     
  7. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Ага, ясно.. спасибо на счёт первой части, теперь ясно почему у меня не работало..

    На счёт второй части.
    К примеру я вношу данные где будут использованы пробелы, к примеру есть форма "Должность" и когда я ввожу "Начальник отдела", при просмотре этой формы у меня выводит лишь "Начальник"(имеется ввиду просмотр, как этот, с которым вы мне только что помогли! При этом в phpmyadmin всё нормально, т.е. с пробелами всё корректно отображается), а если я ввожу "Начальник_отдела", то просмотр выполняется корректно!
     
  8. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    нужен код этой формы
     
  9. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Форма добавления должности:

    PHP:
    1. <?
    2. echo"<body bgcolor = \"0d6666\">";
    3. $connection = mysql_connect("localhost", "root","") or die("Could not connect");
    4. mysql_select_db("Stat_forms") or die("Could not select database");
    5.  
    6. $form="<form action=add_dolzh.php method=POST>
    7. <center><table border=3><br><br><br><br><br><br><br><br><br><br>";
    8. echo"<body bgcolor = \"0d6666\">";
    9. $form.="
    10. </select></td></tr>
    11. <tr><td><font color=\"77dd77\"><font size=\"3px\"><b>Введите новую должность:</b></font></font></td><td><input name=dolzhnost type=text size=50></td></tr></table></center>
    12. <br>
    13. <center>
    14. <input type=submit name=add value=\"Добавить\">
    15. <input type=reset value=\"Очистить\">
    16. </center>
    17. </form>";
    18.  
    19. if ($_POST['add'])
    20.  
    21.     {
    22.  
    23. $query3="INSERT INTO dolzhnost (`dolzhnost`) VALUE ('$_POST[dolzhnost]')";
    24. $result3=mysql_query($query3, $connection) or die(mysql_error());
    25.  
    26. ?>
    27. <html>
    28. <head>
    29. <center><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    30. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    31. </head>
    32. <font color="77dd77"><font size="5px"><center>Должность <b><font color="dc143c"><? echo $_POST['dolzhnost']; ?></font></b> успешно добавлена</font></font></center>
    33. <br>
    34. </center>
    35. </html>
    36.  
    37. <?
    38. mysql_close($connection);
    39.     } else
    40.     {
    41.     echo "$form";
    42.     }
    43.     echo "</body>";
    44. ?>
    Форма редактирования\удаления должности:
    \\В выпадающий список всё выносится нормально(с пробелом), а когда жмёшь "редактировать" - слово "отрубается" после пробела!
    PHP:
    1. <?
    2. echo"<body bgcolor = \"0d6666\">";
    3. $connection = mysql_connect("localhost", "root","") or die("Could not connect");
    4. mysql_select_db("Stat_forms") or die("Could not select database");
    5.  
    6. $query1="SELECT id,dolzhnost FROM dolzhnost";
    7. $result1=mysql_query($query1,$connection) or die (mysql_error($connection));
    8.  
    9.  
    10.  
    11. $form="
    12. <form action=change_dolzh.php method=POST>
    13. <center><table border=3><br><br><br><br><br><br><br><br><br><br><tr><td><font color=\"77dd77\"><font size=\"3px\"><b>Выберите должность для редактирования:&nbsp</font></b></td>
    14. <td><select type=class name=dolzhnost>";
    15.  
    16. while ($num=mysql_fetch_array($result1, MYSQL_ASSOC))
    17.     {
    18.  
    19.     $form.="<option value=$num[id]>$num[dolzhnost]</option>\n";
    20.  
    21.  
    22.     }
    23.  
    24.  
    25. $form.="
    26. </select></td></tr>
    27. <tr><td colspan=2  align=center><basefont face=\"Arial, fantasy\" size=2><input type=checkbox name=change value=change checked>Изменить&nbsp&nbsp&nbsp&nbsp<input type=checkbox name=delete value=delete>Удалить</basefont></td></tr></table></center>
    28. <br>
    29. <center>
    30. <input type=submit name=chdel value=\"Ok\">
    31. </center>
    32. </form>";
    33.  
    34. if ($_POST['chdel'])
    35.  
    36.     {
    37.    
    38.     if ($_POST['change'] == "change" and $_POST['delete'] == "delete")
    39.     {
    40.         print "<center><br><br><br><br><br><br><br><br><br><font color=\"red\"><font size=\"3px\">Выберите только одну из операций!</font></font></center>";
    41.         }
    42.         else
    43.         {
    44.         if ($_POST['change'] == "change")
    45.         {
    46.    
    47.         ?>
    48.         <form action=ch_dol2.php method=post>
    49.         <?
    50.  
    51.         $query2="SELECT dolzhnost FROM dolzhnost WHERE id='$_POST[dolzhnost]'";
    52.         $result2=mysql_query($query2,$connection) or die(mysql_error());
    53.        
    54.         while ($num2=mysql_fetch_array($result2))
    55.         {
    56.             $id_ot=$num2['dolzhnost'];
    57.         }
    58.        
    59.         mysql_free_result($result2);
    60.        
    61.         ?>
    62.         <center>
    63.         <table border=5>
    64.        
    65.         <br><br><br><br><br><br>
    66.         <center><h2>Редактирование должности</h2></center>
    67.         <tr><td>
    68.             <font color="00cccc"><font size="3px">Старое название должности:</font></td>
    69.         <td><input type=text size=50 name=oldch value=<? echo $id_ot; ?> readonly></td></tr>
    70.             <tr><td><font color="00cccc"><font size="3px">Введите новое название должности:</td>
    71.         <td><input type=text size=50 name=newch value=<? echo $id_ot; ?>></font></td></tr>
    72.         <tr><td colspan=2 align=center><input type=submit name=chot value=Ok></td></tr>
    73.         </table></center>
    74.         <?
    75.                
    76.         }
    77.         else
    78.         {
    79.         if ($_POST['delete'] == "delete")
    80.         {  
    81.  
    82.    
    83. $query_add="SELECT id FROM dolzhnost WHERE dolzhnost='$_POST[dolzhnost]'";
    84. $result_add=mysql_query($query_add, $connection) or die(mysql_error($connection));
    85.  
    86.  
    87.  
    88.     $query9="DELETE FROM dolzhnost WHERE id='$_POST[dolzhnost]'";
    89.             $result9=mysql_query($query9,$connection) or die(mysql_error());
    90.  
    91. print "<center><br><br><br><br><br><br><br><br><br><font color=\"red\"><font size=\"3px\">Выбранная должность удалена успешно</font></font></center>";
    92.  
    93.         }
    94.         else
    95.         {
    96.         print "<center><br><br><br><br><br><br><br><br><br><font color=\"red\"><font size=\"3px\">Для изменения или удаления отдела Вам нужно выбрать нужную операцию!</font></font></center>";
    97.         }
    98.         }
    99.     }
    100.    
    101. mysql_close($connection);
    102.     } else
    103.     {
    104.     echo "$form";
    105.     }
    106. echo"</body>";
    107. ?>
    108.  
    !!И так во всех формах
     
  10. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) когда получаешь старое значение должности нужно использовать функцию htmlspecialchars
    2) значение атрибута value заключаешь в двойные кавычки

    строка 57

    PHP:
    1.  
    2. $id_ot=htmlspecialchars($num2['dolzhnost']);
    3.  
    строки 70-72
    HTML:
    1.  
    2. <td><input type=text size=50 name=oldch value="<? echo $id_ot; ?>" readonly></td></tr>
    3.               <tr><td><font color="00cccc"><font size="3px">Введите новое название должности:</td>
    4.           <td><input type=text size=50 name=newch value="<? echo $id_ot; ?>"></font></td></tr>
    5.  
     
  11. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Ага.. надо будет попробовать, спасибо, надеюсь поможет)

    Может достал вас уже, но у меня тут непонятка в коде.
    Есть 2 таблицы:
    forms:

    id int(11)
    nazv varchar(100)
    period_obr varchar(50)
    otdel varchar(50)
    id_sotr varchar(100)

    name:

    id int(11)
    fam varchar(20)
    name varchar(20)
    otch varchar(20)
    id_sotr varchar(100)

    И есть форма со следующими полями:

    Название формы: nazv
    Период обработки: period_obr
    Отдел обработки: otdel
    Выполняет: id_sotr (сравнивает id с id в таблице name и выносит соответствующую фамилию)

    В таблицу на просмотр у меня выносятся эти данные и при нажатии на кнопку "редактировать", всё происходит по Вашему совету, runner. Всё редактирует как надо, КРОМЕ сотрудника! Т.е. в выпадающий список он сравнивает id_sotr(из табл forms) с id(из табл name) и выносит фамилию. Но когда я нажимаю отредактировать, сотрудник по ID не редактируется, а поле id_sotr в таблице forms становится ПУСТЫМ! Возможно я где то что то забыл, как обычно :(
    Вот код формы редактирования:
    PHP:
    1. <?php
    2. $dblocation = "localhost";
    3. $dbname = "stat_forms";
    4. $dbuser = "root";
    5. $dbpassword = "";
    6. $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpassword);
    7. if (!$dbcnx)
    8. {
    9.     echo( "<html><body><P>В настоящий момент сервер базы данных не доступен, поэтому
    10.        корректное отображение страницы невозможно.</P></body></html>" );
    11.     exit();
    12. }
    13. if (!@mysql_select_db($dbname, $dbcnx))
    14. {
    15.     echo( "<html><body><P>Невозможно подключиться к БД.</P></body></html>" );
    16.     exit();
    17. }
    18. if(isset($_GET['id']))
    19. {
    20.     //передан id записи для редактирования
    21.     $ath = mysql_query("SELECT * FROM forms WHERE id=".$_GET['id']);
    22.     if($ath)
    23.     {
    24.         //присваивание переменных для дальнейшего вызова!
    25.         $form = mysql_fetch_array($ath);
    26.         $form_nazv=$form['nazv'];
    27.         $form_obr=$form['period_obr'];
    28.          
    29.         $otdel=$form['otdel'];
    30.        
    31.         $id_sotr=$form['id_sotr'];
    32.                
    33.         // добавлено-сохраняем в сессионной переменной id записи
    34.         $_SESSION['record_id']=$_GET['id'];
    35.     }
    36.     else
    37.     {
    38.         echo( "<html><body><P>{$_GET['id']}-Запись не найдена</P></body></html>" );
    39.         exit();
    40.     }
    41.  
    42.  
    43.    
    44. }
    45. elseif(isset($_POST['update']))
    46. {
    47.    
    48.     $form_nazv=mysql_real_escape_string($_POST["nazv"]);
    49.     $form_obr=mysql_real_escape_string($_POST["period_obr"]);
    50.      
    51.    
    52.     $otdel=$_POST["otdel"];
    53.    
    54.     $id_sotr=$_POST["id_sotr"];
    55.    
    56.    
    57.          
    58.   {
    59.      $q="update forms set nazv='$form_nazv', period_obr='$form_obr', otdel='$otdel', id_sotr='$id_sotr' where id='{$_SESSION['record_id']}'";
    60.            $ath = mysql_query($q);
    61.            if($ath)
    62.            {
    63.                  
    64.                      header('Location: update_form.php');
    65.                  
    66.            }
    67.    }        
    68.                
    69. }
    70.  
    71. echo"<html><body bgcolor = \"0d6666\">";
    72.  
    73.  
    74.  
    75. {
    76.  
    77. $query1="SELECT * FROM name";
    78. $result1=mysql_query($query1);
    79. $form_sotr=" <select type=class name=id>";
    80. while ($num_sotr=mysql_fetch_array($result1, MYSQL_ASSOC))
    81. {
    82.    
    83.     if($id_sotr==$num_sotr['id'])
    84.     {
    85.         $form_sotr.="<option value={$num_sotr['id']} selected>{$num_sotr['fam']}</option>\n";
    86.     }
    87.     else
    88.     {
    89.         $form_sotr.="<option value={$num_sotr['id']}>{$num_sotr['fam']}</option>\n";
    90.     }
    91. }
    92. $form_sotr.="</select>";
    93. }
    94.  
    95. {
    96. $query2="SELECT otdel FROM otdel ORDER BY otdel ";
    97. $result2=mysql_query($query2);
    98.  
    99. $form_otd=" <select type=class name=otdel>";
    100. while ($num_otd=mysql_fetch_array($result2, MYSQL_ASSOC))
    101. {
    102.    
    103.     if($otdel==$num_otd['otdel'])
    104.     {
    105.         $form_otd.="<option value={$num_otd['otdel']} selected>{$num_otd['otdel']}</option>\n";
    106.     }
    107.     else
    108.     {
    109.         $form_otd.="<option value={$num_otd['otdel']}>{$num_otd['otdel']}</option>\n";
    110.     }
    111. }
    112. $form_otd.="</select>";
    113. }
    114.  
    115. ?>
    116. <center>
    117. <form action="editform_form.php"  method="post">
    118. <table border=5>
    119. <br><br><br><br><br><br><br><br>
    120. <tr><h2>Формы</h2></tr>
    121. <tr><td><font color="00cccc"><font size="3px">Название формы:</font></font></td>
    122. <td><input type=text size=30 name=nazv value=<? echo $form_nazv; ?>></td></tr>
    123. <tr><td><font color="00cccc"><font size="3px">Период обработки:</font></font></td>
    124. <td><input type=text size=30 name=period_obr value=<? echo $form_obr; ?>></td></tr>
    125.  <tr><td><font color="00cccc"><font size="3px">Отдел:</font></font></td>
    126. <td><? echo $form_otd; ?></td></tr>
    127.  <tr><td><font color="00cccc"><font size="3px">Сотрудник:</font></font></td>
    128. <td><? echo $form_sotr; ?></td></tr>
    129.  
    130.  
    131. <tr><td colspan=2 align=center><input type=submit name=update value=Редактировать></td></tr>
    132. </table></form></center>
    133. </body></html>";
     
  12. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    строки 55 и 80 противоречат друг другу:

    $id_sotr=$_POST["id_sotr"];=> код сотрудника получаешь из поля с атрибутом name, равным id_sotr

    $form_sotr=" <select type=class name=id>"; - устанавливаешь атрибут name равным id для поля ввода сотрудника

    нужно просто поменять строку 80
    $form_sotr=" <select type=class name='id_sotr'>";
     
  13. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Ёмаё....ппц я.. спасибо, вам, уважаемый!
     
  14. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Блин, всё равно дурь какая то!!
    Как с выпадающими списками быть??
    У меня отображается в списке в этом всё как надо с пробелом, а когда нажимаю кнопочку отправить то вносится уже в саму SQL-базу то, что ДО ПРОБЕЛА!?!? Т.е. формы, где заносится из текстового поля в базу - всё работает корректно, а из выпадающего списка в базу - НИФИГА!
    Как не мучился, вставлял эту строку, всё бестолку!
    Может вставляю не туда?
    Куда надо?

    Вот к примеру, в этой форме:


    PHP:
    1. <?
    2. echo"<body bgcolor = \"0d6666\">";
    3. $connection = mysql_connect("localhost", "root","") or die("Could not connect");
    4. mysql_select_db("stat_forms") or die("Could not select database");
    5.  
    6. ///////!!!!ВОТ ЭТОТ ВЫПАДАЮЩИЙ СПИСОК, В КОТОРОМ ВСЁ НОРМАЛЬНО ОТОБРАЖАЕТСЯ С ПРОБЕЛАМИ, А ВНОСИТСЯ БЕЗ!!!!!
    7. {
    8. $query1="SELECT dolzhnost FROM dolzhnost";
    9. $result1=mysql_query($query1,$connection) or die (mysql_error($connection));
    10.  
    11. $form_dolj="
    12. <form action=add_sotr.php method=POST>
    13. <select type=class name=dolzhnost>";
    14. while ($num_dolj=mysql_fetch_array($result1, MYSQL_ASSOC))
    15. {
    16.     $form_dol=htmlspecialchars($num_dolj['dolzhnost']);
    17.     $form_dolj.="<option value=$form_dol>$num_dolj[dolzhnost]</option>\n"; //выпадающий список должностей
    18.     }
    19. }
    20. /////А ЭТО ЕЩЁ ОДИН!!!  
    21. {  
    22. $query_otd="SELECT otdel FROM otdel";
    23. $result_otd=mysql_query($query_otd,$connection) or die (mysql_error($connection));
    24.    
    25. $form_otd="
    26. <form action=add_sotr.php method=POST>
    27. <select type=class name=otdel>";
    28. while ($num_otd=mysql_fetch_array($result_otd, MYSQL_ASSOC))
    29. {
    30.     $form_otd.="<option value=$num_otd[otdel]>$num_otd[otdel]</option>\n"; //выпадающий список отделов
    31.     }
    32. mysql_free_result($result_otd);
    33. }
    34. $form="
    35. <form action=add_sotr.php method=POST>
    36. <center><table border=5><tr><basefont face=\"Arial, fantasy\" size=2>"; //форма ниже
    37.  
    38. $form.="
    39. </select></td></tr><br><br><br><br>
    40.         <tr><td colspan=2 align=center>
    41.            <font color=\"77dd77\"><font size=\"4px\"><b>Введите данные сотрудника:</b></font></font></td></tr>
    42.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Фамилия:</font></font></td><td><input type=text size=50 name=oldfam></td>
    43.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Имя:</font></font></td><td><input type=text size=50 name=oldname></td>
    44.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Отчество:</font></font></td><td><input type=text size=50 name=oldotch></td>
    45.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Дата рождения:</font></font></td><td><input type=text size=50 name=oldbithday></td>
    46.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Улица:</font></font></td><td><input type=text size=50 name=oldulisa></td>
    47.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Дом:</font></font></td><td><input type=text size=50 name=olddom></td>
    48.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Корпус:</font></font></td><td><input type=text size=50 name=oldkorpus></td>
    49.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Квартира:</font></font></td><td><input type=text size=50 name=oldkvar></td>
    50.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Домашний телефон:</font></font></td><td><input type=text size=50 name=oldhph></td>
    51.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Мобильный телефон:</font></font></td><td><input type=text size=50 name=oldmph></td>
    52.         <tr><td><font color=\"00cccc\"><font size=\"3px\">Адрес электронной почты:</font></font></td><td><input type=text size=50 name=oldmail></td>
    53.         <tr><td valign=top><font color=\"00cccc\"><font size=\"3px\">Остальное:</font></font></td><td><textarea name=oldcomment rows=15 cols=39></textarea></td>
    54.         <tr><td colspan=3><font color=\"00cccc\"><font size=\"3px\">Должность:</font></font> $form_dolj. </td>
    55.         <tr><td colspan=3><font color=\"00cccc\"><font size=\"3px\">Отдел:</font></font>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp $form_otd. </td>
    56.     <tr><td colspan=3 align=center><input type=checkbox name=prav value=prav>&nbsp&nbsp<font color=\"77dd77\"><font size=\"3px\">Данные верны</font></font></td></tr>
    57. <tr><td colspan=2  align=center><basefont face=\"Arial, fantasy\" size=2><input type=submit name=acres value=\"Отправить\">&nbsp&nbsp&nbsp<input type=reset value=\"Сбросить\"></basefont>
    58. </td></tr></table></center>
    59. </form>";
    60.  
    61. if ($_POST['acres'])
    62.  
    63.     {
    64.  
    65.     if ($_POST['prav'] == "prav")
    66.  
    67.         {
    68.        
    69. //выборка должности    
    70.     {  
    71. $query_add="SELECT id FROM dolzhnost WHERE dolzhnost='$_POST[dolzhnost]'";
    72. $result_add=mysql_query($query_add, $connection) or die(mysql_error($connection));
    73.  
    74.  
    75. while ($dol2 = mysql_fetch_array($result_add, MYSQL_ASSOC))
    76.     {
    77.     $name_dolj = $dol2['id'];
    78.  
    79.     }
    80.     mysql_free_result($result_add);
    81. }
    82.  
    83. //выборка отдела
    84. {  
    85. $query_add_otd="SELECT id FROM otdel WHERE otdel='$_POST[otdel]'";
    86. $result_add_otd=mysql_query($query_add_otd, $connection) or die(mysql_error($connection));
    87.    
    88.    
    89. while ($otd2 = mysql_fetch_array($result_add_otd, MYSQL_ASSOC))
    90.     {
    91.     $name_otd = $otd2['id'];
    92.  
    93.     }
    94.     mysql_free_result($result_add_otd);
    95. }    
    96.    
    97.     $query_add_in_name="INSERT INTO name (`dolzhnost`,`otdel`,`fam`,`name`,`otch`) VALUE('$_POST[dolzhnost]','$_POST[otdel]','$_POST[oldfam]', '$_POST[oldname]', '$_POST[oldotch]')";
    98.     $result_add_in_name=mysql_query($query_add_in_name,$connection) or die(mysql_error($connection));
    99.    
    100.  
    101.    
    102.     $query4="SELECT id FROM name WHERE dolzhnost='$_POST[dolzhnost]' && otdel='$_POST[otdel]' && fam='$_POST[oldfam]' && name='$_POST[oldname]' && otch='$_POST[oldotch]'";
    103.     $result4=mysql_query($query4,$connection) or die(mysql_error($connection));
    104.  
    105.     while ($num4=mysql_fetch_array($result4))
    106.         {
    107.             $id_sot=$num4['id'];
    108.  
    109.         }
    110.         mysql_free_result($result4);
    111.    
    112.  
    113.     $query2="INSERT INTO person (`id_name`,`ulisa`,`dom`,`korpus`,`bithday`,`kvartira`,`home_phone`,`mob_phone`,`mail`) VALUE('$id_sot','$_POST[oldulisa]','$_POST[olddom]','$_POST[oldkorpus]','$_POST[oldbithday]','$_POST[oldkvar]','$_POST[oldhph]','$_POST[oldmph]','$_POST[oldmail]')";
    114.     $result2=mysql_query($query2,$connection) or die(mysql_error($connection));
    115.  
    116.     $query3="INSERT INTO other (`id_name`,`comment`) VALUE('$id_sot','$_POST[oldcomment]')";
    117.     $result3=mysql_query($query3,$connection) or die(mysql_error($connection));
    118.    
    119.    
    120.  
    121.  
    122.     print "<br><br><br><br><br><br><br><br><br><br><br><br><br><br><font color=\"77dd77\"><font size=\"5px\"><center> Сотрудник <font color=\"dc143c\"><b>$_POST[oldfam] $_POST[oldname] $_POST[oldotch]</b></font> теперь в базе данных организации</font></font></center>";
    123.  
    124.         }
    125.             else
    126.             {
    127.                 print "<br><br><br><br><br><br><br><br><font color=\"red\"><font size=\"4px\"><center>Ошибка: не подвержденны правильность ввода данных</font></font>";
    128.                 print "<br><br><br><br><input type=button value=\"Вернуться\" onClick='javascript:history.go(-1)'></center>";
    129.             }
    130.        
    131.    
    132. mysql_close($connection);
    133.  
    134.     }
    135.  
    136.     else
    137.  
    138.     {
    139.     echo "$form";
    140.     echo "</body>";
    141.     }
    142.  
    143. ?>
    144.  
     
  15. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент

    У тебя есть таблицы - справочники, из записей которых формируются списки (dolzhnost,otdel, ...). Они состоят из двух полей:
    код - код должности, код отдела и т.д. Для упрощения работы коду присваиваются либо целое число или строка без пробелов
    название- название должности, отдела и т.д.

    1)Списки нужно формировать следующим образом
    а) в запросе выбирать оба поля - код и название
    PHP:
    1.  
    2. $query1="SELECT * FROM dolzhnost";
    3. $query_otd="SELECT * FROM otdel";
    4.  
    б) опции списка формировать так
    <option value=код>название</option>
    PHP:
    1.  
    2. $form_dolj="
    3. <select type=class name=dolzhnost>";
    4. while ($row=mysql_fetch_array($result1, MYSQL_ASSOC))
    5. {
    6.     $name=htmlspecialchars($row['dolzhnost']);
    7.     $id=htmlspecialchars($row['id']);
    8.     $form_dolj.="<option value=\"$id\">$name</option>\n"; //выпадающий список должностей
    9. }
    10. $form_dolj.="</select>";
    11.  
    PHP:
    1.  
    2. $form_otd="
    3. <select type=class name=otdel>";
    4. while ($row=mysql_fetch_array($result_otd, MYSQL_ASSOC))
    5. {
    6.     $name=htmlspecialchars($row['otdel']);
    7.     $id=htmlspecialchars($row['id']);
    8.     $form_otd.="<option value=\"$id\">$name</option>\n"; //выпадающий список отделов
    9. }
    10. $form_otd.="</select>";
    11.  
    2) при записи в базу данных нужно записывать именно код, а не название
    поэтому блок кода 70-96 просто не нужен
    3) у тебя поле id в таблице name auto_increment. Поэтому код добавленной записи можно определить так:
    $id_sot=mysql_insert_id();

    и блок кода 103-111 не нужен

    4) если ты по-прежнему хочешь записать вместо кода название, тогда просто заключи атрибут value у опций в кавычки (поскольку у тебя название может содержать пробелы). Именно из-за этого у тебя записывались значения до первого пробела
     
  16. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Да.. Вы имеете ввиду редактирование по id. Я сначала так хотел сделать, а потом когда стал делать по названиям, было поздно. Но вот пришлось сейчас многое переписать, но я доволен!)) Огромное спасибо, что так быстро отвечаете, а то порой приходится дни ждать...

    Осталось удаление закончить, если будут вопросы, я вам напишу ^^
     
  17. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    runner
    ты попал! :)
     
  18. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
  19. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Я так подумал... Ведь для удаления можно прям эту форму и использовать, помогите, куда тут засунуть дополнительные If'ы для удаления?? Вот форма:

    PHP:
    1. <html>
    2. <HEAD>
    3. <META http-equiv=content-type content="text/html; charset=windows-1251">
    4. </HEAD>
    5. <body bgcolor = "0d6666">
    6. <br><br><br><br><br>
    7. <center><h2>Сотрудники</h2></center>
    8. <table align="center"border=5>
    9. <tr align="center">
    10. <td><font color="77dd77"><font size="3px"><b>Фамилия</b></font></font></td>
    11. <td><font color="77dd77"><font size="3px"><b>Имя</b></font></font></td>
    12. <td><font color="77dd77"><font size="3px"><b>Отчество</b></font></font></td>
    13. <td><font color="77dd77"><font size="3px"><b>Должность</b></font></font></td>
    14. <td><font color="77dd77"><font size="3px"><b>Отдел</b></font></font></td>
    15. <td><font color="ff00gg"><font size="3px"><b>Редактирование\Удаление</b></font></font></td>
    16.  
    17. </tr>
    18. <?php
    19. $link = mysql_connect("***", "root","***")
    20.       or die("Could not connect");
    21. mysql_select_db("stat_forms") or die("Could not select database");
    22.  
    23.  $ath = mysql_query("SELECT * FROM name ORDER BY name");
    24.  if($ath)
    25.  {
    26.      while($form = mysql_fetch_array($ath))
    27.      {
    28.          $name_id=$form['id'];
    29.          $name_fam=$form['fam'];
    30.          $name_name=$form['name'];
    31.          $name_otch=$form['otch'];
    32.          $name_dol=$form['dolzhnost'];
    33.          $name_otd=$form['otdel'];
    34.          
    35.          $ath2 = mysql_query("SELECT * FROM dolzhnost WHERE id=".$name_dol);
    36.          if($ath2)
    37.          {
    38.              while($dol = mysql_fetch_array($ath2))
    39.              {
    40.                  $nazv_dol=$dol['dolzhnost'];
    41.              }
    42.          $ath3 = mysql_query("SELECT * FROM otdel WHERE id=".$name_otd);
    43.          if($ath3)
    44.          {
    45.              while($otdel = mysql_fetch_array($ath3))
    46.              {
    47.                  $nazv_otdel=$otdel['otdel'];
    48.              }
    49.  
    50.  
    51. echo "<tr><td><font color=\"00cccc\">".$name_fam."</font></td><td><font color=\"00cccc\">".$name_name."</font></td><td><font color=\"00cccc\">".$name_otch."</font></td><td><font color=\"00cccc\">".$nazv_dol."</font></td><td><font color=\"00cccc\">".$nazv_otdel."</font></td>
    52. &nbsp;<td><a href=editform_name.php?id=".$name_id.">Редактировать</a></td></tr>"; ////и чтоб рядышком "Удалить было"
    53.  
    54.                }
    55.                }
    56.                }
    57. }
    58. echo "</table>";
    59. ?>
    60. </table>
    61. </body>
    62. </html>
    Гляньте, мастера, а то у меня опять с синтаксисом беда(
     
  20. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Спасибо, я САМ сделал))
     
  21. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Ппц, только сейчас обнаружил!!
    Почему у меня удаляется только последняя запись???
    Вот форма выборки данных:
    update_name.php
    PHP:
    1. <html>
    2. <HEAD>
    3. <META http-equiv=content-type content="text/html; charset=windows-1251">
    4. </HEAD>
    5. <body bgcolor = "#fff">
    6. <br><br><br><br><br>
    7. <center><h2>Сотрудники</h2></center>
    8. <table align="center"border=5>
    9. <tr align="center">
    10. <td><font color="77dd77"><font size="3px"><b>Фамилия</b></font></font></td>
    11. <td><font color="77dd77"><font size="3px"><b>Имя</b></font></font></td>
    12. <td><font color="77dd77"><font size="3px"><b>Отчество</b></font></font></td>
    13. <td><font color="77dd77"><font size="3px"><b>Должность</b></font></font></td>
    14. <td><font color="77dd77"><font size="3px"><b>Отдел</b></font></font></td>
    15. <td><font color="ff00gg"><font size="3px"><b>Редактирование/Удаление</b></font></font></td>
    16.  
    17. </tr>
    18. <?php
    19. $link = mysql_connect("localhost", "root","")
    20.       or die("Could not connect");
    21. mysql_select_db("stat_forms") or die("Could not select database");
    22.  
    23.  $ath = mysql_query("SELECT * FROM name ORDER BY name");
    24.  if($ath)
    25.  {
    26.      while($form = mysql_fetch_array($ath))
    27.      {
    28.          $name_id=$form['id'];
    29.          $name_fam=$form['fam'];
    30.          $name_name=$form['name'];
    31.          $name_otch=$form['otch'];
    32.          $name_dol=$form['dolzhnost'];
    33.          $name_otd=$form['otdel'];
    34.          
    35.          $ath2 = mysql_query("SELECT * FROM dolzhnost WHERE id=".$name_dol);
    36.          if($ath2)
    37.          {
    38.              while($dol = mysql_fetch_array($ath2))
    39.              {
    40.                  $nazv_dol=$dol['dolzhnost'];
    41.              }
    42.          $ath3 = mysql_query("SELECT * FROM otdel WHERE id=".$name_otd);
    43.          if($ath3)
    44.          {
    45.              while($otdel = mysql_fetch_array($ath3))
    46.              {
    47.                  $nazv_otdel=$otdel['otdel'];
    48.              }
    49.              
    50.              
    51.              
    52.  
    53.  
    54. echo "<tr><td><font color=\"00cccc\">".$name_fam."</font></td><td><font color=\"00cccc\">".$name_name."</font></td><td><font color=\"00cccc\">".$name_otch."</font></td><td><font color=\"00cccc\">".$nazv_dol."</font></td><td><font color=\"00cccc\">".$nazv_otdel."</font></td>
    55. &nbsp;<td><a href=editform_name.php?id=".$name_id."><input type=submit value=\"Изменить\"></a> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp   <a href=delete_name.php><input type=submit value=\"Удалить\"></a> </td></tr>"; ///вот рядом с кнопкой "изменить", кнопка "удалить"!
    56. }
    57. }
    58. }
    59. }
    60.  
    61.  
    62.  
    63.  
    64.  
    65.    
    66.  
    67. echo "</table>";
    68.  
    69. ?>
    70. </table>
    71. </body>
    72. </html>
    Вот рабочая форма удаления:
    delete_name.php
    PHP:
    1. <?
    2.  
    3. $connection = mysql_connect("localhost", "root","") or die("Could not connect");
    4. mysql_select_db("stat_forms") or die("Could not select database");
    5.  
    6.  $ath = mysql_query("SELECT * FROM name");
    7.  if($ath)
    8.  {
    9.      while($form = mysql_fetch_array($ath))
    10.      {
    11.          $name_id=$form['id'];
    12.      
    13.         $query4="SELECT * FROM person";
    14.         $result4=mysql_query($query4) or die(mysql_error());
    15.  
    16.         while ($num4=mysql_fetch_array($result4))
    17.             {
    18.             $id_per=$num4['id'];
    19.             }
    20.          $ath3 = mysql_query("SELECT * FROM other");
    21.          if($ath3)
    22.          {
    23.              while($other = mysql_fetch_array($ath3))
    24.              {
    25.                  $id_other=$other['id'];
    26.              }
    27.          
    28.          }
    29.          
    30.          
    31.          $q="DELETE FROM name WHERE id=".$name_id;
    32.            $ath = mysql_query($q);
    33.            if($ath)
    34.            {
    35.                $q2="DELETE FROM person WHERE id_name=".$name_id;
    36.                $ath2 = mysql_query($q2);
    37.                if($ath2)
    38.                {
    39.                  $q3="DELETE FROM other WHERE id_name=".$name_id;
    40.                  $ath3 = mysql_query($q3);
    41.                  if($ath3)
    42.                  {
    43.                      header('Location: update_name.php');
    44.                  }
    45.              }
    46.            }   
    47.          
    48.          
    49.          
    50.          
    51.          
    52.  
    53.    
    54. }
    55. }
    56.  
    57.  
    58.  
    59. mysql_close($connection);
    60.  
    61. ?>
    В Чём дело, подскажите, пожалуйста!!!
     
  22. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Вот я переделал, всё работает, но почему то вылезает надпись:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\****\****\www\***\****\Sotrudnik\update_name.php on line 26

    PHP:
    1. <html>
    2. <HEAD>
    3. <META http-equiv=content-type content="text/html; charset=windows-1251">
    4. </HEAD>
    5. <body bgcolor = "#fff">
    6. <br><br><br><br><br>
    7. <center><h2>Сотрудники</h2></center>
    8. <table align="center"border=5>
    9. <tr align="center">
    10. <td><font color="77dd77"><font size="3px"><b>Фамилия</b></font></font></td>
    11. <td><font color="77dd77"><font size="3px"><b>Имя</b></font></font></td>
    12. <td><font color="77dd77"><font size="3px"><b>Отчество</b></font></font></td>
    13. <td><font color="77dd77"><font size="3px"><b>Должность</b></font></font></td>
    14. <td><font color="77dd77"><font size="3px"><b>Отдел</b></font></font></td>
    15. <td><font color="ff00gg"><font size="3px"><b>Редактирование/Удаление</b></font></font></td>
    16.  
    17. </tr>
    18. <?php
    19. $link = mysql_connect("localhost", "root","")
    20.       or die("Could not connect");
    21. mysql_select_db("stat_forms") or die("Could not select database");
    22.  
    23.  $ath = mysql_query("SELECT * FROM name ORDER BY name");
    24.  if($ath)
    25.  {
    26.      while($form = mysql_fetch_array($ath))
    27.      {
    28.          $name_id=$form['id'];
    29.          $name_fam=$form['fam'];
    30.          $name_name=$form['name'];
    31.          $name_otch=$form['otch'];
    32.          $name_dol=$form['dolzhnost'];
    33.          $name_otd=$form['otdel'];
    34.          
    35.          $ath2 = mysql_query("SELECT * FROM dolzhnost WHERE id=".$name_dol);
    36.          if($ath2)
    37.          {
    38.              while($dol = mysql_fetch_array($ath2))
    39.              {
    40.                  $nazv_dol=$dol['dolzhnost'];
    41.              }
    42.          $ath3 = mysql_query("SELECT * FROM otdel WHERE id=".$name_otd);
    43.          if($ath3)
    44.          {
    45.              while($otdel = mysql_fetch_array($ath3))
    46.              {
    47.                  $nazv_otdel=$otdel['otdel'];
    48.              }
    49.              
    50.              
    51.              
    52.  
    53.  
    54. echo "<form action=update_name.php method=POST><tr><td><font color=\"00cccc\">".$name_fam."</font></td><td><font color=\"00cccc\">".$name_name."</font></td><td><font color=\"00cccc\">".$name_otch."</font></td><td><font color=\"00cccc\">".$nazv_dol."</font></td><td><font color=\"00cccc\">".$nazv_otdel."</font></td>
    55. &nbsp;<td><a href=editform_name.php?id=".$name_id."><input type=submit value=\"Изменить\"></a> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp  <input type=checkbox name=delete value=delete>Удалить <input type=submit name=chdel value=\"Удалить\"></a> </td></tr>";
    56.  
    57. if ($_POST['chdel'])
    58.  
    59. {
    60.    
    61.     if ($_POST['delete'] == "delete")
    62. {
    63.  
    64.          
    65.          
    66.          $q="DELETE FROM name WHERE id=".$name_id;
    67.            $ath = mysql_query($q);
    68.            if($ath)
    69.            {
    70.                $q2="DELETE FROM person WHERE id_name=".$name_id;
    71.                $athq = mysql_query($q2);
    72.                if($athq)
    73.                {
    74.                  $q3="DELETE FROM other WHERE id_name=".$name_id;
    75.                  $athq2 = mysql_query($q3);
    76.                  
    77.                  
    78.              }
    79.            }   
    80.          
    81.          
    82.          
    83.          
    84.          
    85.  
    86.    
    87. }
    88. }
    89. }
    90. }
    91.  
    92. }
    93. }
    94.  
    95.  
    96.  
    97.    
    98.  
    99. echo "</table>";
    100.  
    101. ?>
    102. </table>
    103. </body>
    104. </html>
    Что такое?
     
  23. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) в скрипт удаления записи нужно передавать первичный ключ удаляемой записи. Для этого ссылку на скрипт удаления нужно формировать аналогично ссылке на редактирование:
    PHP:
    1.  
    2. <a href=delete_name.php?id=".$name_id."><input type=submit value=\"Удалить\"></a>
    3.  
    2) в самом скрипте удаления нужно использовать это значение

    PHP:
    1.  
    2. <?php      
    3. $connection = mysql_connect("localhost", "root","") or die("Could not connect");
    4. mysql_select_db("stat_forms") or die("Could not select database");
    5. if(!isset($_GET['id']))
    6. {
    7.      echo "нужен код удаляемой записи";
    8.     die();
    9. }
    10. $id=$_GET['id'];
    11. // выбрать только удаляемую запись
    12. $ath = mysql_query("SELECT * FROM name where id='$id'");
    13.  
    14. весь остальной код
    15.  
     
  24. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    Всё удаляет, но почему то выдаёт ошибку:

    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\***\www\***\***\delete_name.php:1) in Z:\home\***\www\***\***\delete_name.php on line 48

    Из за чего такое может быть?
     
  25. Dimitry_LD

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

    С нами с:
    13 янв 2011
    Сообщения:
    60
    Симпатии:
    0
    Адрес:
    GH
    PHP:
    1.  <?php    
    2.  $connection = mysql_connect("localhost", "root","") or die("Could not connect");
    3.  mysql_select_db("Stat_forms") or die("Could not select database");
    4.  if(!isset($_GET['id']))
    5.  {
    6.      echo "Нужен код удаляемой записи";
    7.      die();
    8.  }
    9.  $id=$_GET['id'];
    10.  // выбрать только удаляемую запись
    11.  $ath = mysql_query("SELECT * FROM name where id='$id'");
    12.  
    13.  if($ath)
    14.  {
    15.  while($form = mysql_fetch_array($ath))
    16.      {
    17.          $name_id=$form['id'];
    18.      
    19.      
    20.          
    21.      
    22.         $query_per="SELECT * FROM person";
    23.         $result_per=mysql_query($query_per) or die(mysql_error($connection));
    24.  
    25.         $ath_other = "SELECT * FROM other";
    26.         $result_other=mysql_query($ath_other) or die(mysql_error($connection));
    27.          
    28.          {
    29.          $q="DELETE FROM name WHERE id='$id'";
    30.            $del_name = mysql_query($q);
    31.            if($del_name)
    32.            {
    33.                $q2="DELETE FROM person WHERE id_name=".$name_id;
    34.                $del_per = mysql_query($q2);
    35.                if($del_per)
    36.                {
    37.                  $q3="DELETE FROM other WHERE id_name=".$name_id;
    38.                  $del_other = mysql_query($q3);
    39.                  if($del_other)
    40.                  {
    41.                  header('Location:update_name.php');
    42.                  }               
    43. }
    44. }  
    45. }                  
    46. }
    47. }
    48. mysql_close($connection);
    49. ?>
    Всё работает, но с
    PHP:
    1. {
    2. header('Location:update_name.php');
    3. }
    Какая то проблема :(
    Warning: Cannot modify header information - headers already sent by