За последние 24 часа нас посетили 18448 программистов и 1704 робота. Сейчас ищут 949 программистов ...

вывод данных

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

  1. patrik

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

    С нами с:
    21 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Есть база mysql в ней таблица с полями email и name.
    Вывожу данные на страницу.
    Хочу получить данные вида:
    Имя Почта checkbox(удаление) checkbox(отправка почты)
    Имя Почта checkbox(удаление) checkbox(отправка почты)
    Имя Почта checkbox(удаление) checkbox(отправка почты)
    Имя Почта checkbox(удаление) checkbox(отправка почты)
    Кнопка удалить Кнопка отправить почту

    Получается, что в одной таблице две формы, одна для удаления данных вторая для отрпавки данных.
    Код (Text):
    1. <?php
    2. error_reporting(E_ALL ^ E_NOTICE);
    3. include_once("config.php");
    4.  
    5. $table = "users";
    6. $query = "SELECT DISTINCT name, email FROM $table";
    7. $res = mysql_query($query) or die(mysql_error());
    8.  
    9. while ($row = mysql_fetch_array($res)) {
    10. Не могу сообразить как сделать вывод с чекбоксами для последующей их обработки
    11. }
    12.  
    13. ?>
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А зачем нотисы убрал? Забил на них? :)

    Ну может попробуешь хоть что то. Что именно тебя останавливает?
    Вряд ли здесь сидят телепаты...
     
  3. patrik

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

    С нами с:
    21 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Попробую.
    Решил не много переделать вывод, теперь такой вид

    checkbox Имя Email редактировать запись
    checkbox Имя Email редактировать запись
    checkbox Имя Email редактировать запись
    checkbox Имя Email редактировать запись
    в низу две кнопки Удалить и Отправить

    Вот код? не знаю на сколько он корректный.
    Код (Text):
    1.  
    2. <?php
    3. error_reporting(E_ALL ^ E_NOTICE);
    4. include_once("config.php");
    5.  
    6. $table = "users";
    7.  
    8. $query = "SELECT * FROM $table";
    9.  
    10. $res = mysql_query($query) or die(mysql_error());
    11.  
    12. $tab1 = "<table><form method=\"POST\"><tr><td>&nbsp;</td><td>имя</td><td>Email</td><td>Edit</td></tr>";
    13.  
    14. while ($row = mysql_fetch_array($res)) {
    15. $tab .= "<tr>\n";
    16. $tab .= "<td><input type=checkbox name=\"select[]\" value=".$row['id']."></td>\n";
    17. $tab .= "<td>".$row['name']."</td>\n";
    18. $tab .= "<td>".$row['email']."</td>\n";
    19. $tab .= "<td><a name=\"edit\" href=\"edit.php?edit=".$row["id"]."\">Edit</a></td>\n";
    20. $tab .= "</tr>\n";
    21. }
    22.  
    23. $tab2 = "<tr><td></td><td></td><td><input type=\"submit\" value=\"Удалить\" name=\"delete\"></td><td><input type=\"submit\" value=\"отправить\" name=\"send\"><td></tr></form></table>";
    24.  
    25.  
    26.  
    27. if ( isset($_POST['delete']) ) {
    28. // Удаляем записи
    29. }
    30. if ( isset($_POST['send']) ) {
    31. // Отправляем почту
    32. }
    33.  
    34. ?>
    Нотисы убрал, чтобы они меня не отвлекали
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $tab .= "<tr>\n";
    2. $tab .= "<td><input type=checkbox name=\"select[]\" value=".$row['id']."></td>\n"; 
    3. $tab .= "<td>".$row['name']."</td>\n";
    4. $tab .= "<td>".$row['email']."</td>\n";
    5. $tab .= "<td><a name=\"edit\" href=\"edit.php?edit=".$row["id"]."\">Edit</a></td>\n";
    6. $tab .= "</tr>\n"; 
    Меня этот говно код всегда порожает...
    На какой черт делать такое?!

    Изврат блин.
     
  5. patrik

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

    С нами с:
    21 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Если знаешь как лучше сделать, то напиши... В чём именно изврат?
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Одной переменной хватит! Зачем ты туда штопаешь переносы строк?
    На какой черт делать эти слеши долбаные и портить вид?
     
  7. patrik

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

    С нами с:
    21 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Переносы делаю для себя, так как смотрю исходный код страницы в браузере. А если делать все в одну строчку, то будет не наглядно.
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Вы мануал по работе с php когда - нибудь читать пробовали?)

    php.net/manual/ru/
     
  9. patrik

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

    С нами с:
    21 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Подправил код
    Код (Text):
    1.  
    2. <?php
    3. error_reporting(E_ALL ^ E_NOTICE);
    4. include_once("config.php");
    5.  
    6. $table = "users";
    7.  
    8. $query = "SELECT * FROM $table";
    9.  
    10. $res = mysql_query($query) or die(mysql_error());
    11.  
    12. $tab1 = "<table>
    13.                    <form method=\"POST\">
    14.                          <tr>
    15.                                <td>&nbsp;</td>
    16.                                <td>имя</td>
    17.                                <td>Email</td>
    18.                                <td>Edit</td>
    19.                          </tr>";
    20.  
    21. while ($row = mysql_fetch_array($res)) {
    22. $tab .= "<tr>
    23.              <td><input type=checkbox name=\"select[]\" value=".$row['id']."></td>
    24.              <td>".$row['name']."</td>
    25.             <td>".$row['email']."</td>
    26.             <td><a name=\"edit\" href=\"edit.php?edit=".$row["id"]."\">Edit</a></td>
    27.        </tr>";
    28. }
    29.  
    30. $tab2 = "<tr>
    31.                    <td></td>
    32.                    <td></td>
    33.                    <td><input type=\"submit\" value=\"Удалить\" name=\"delete\"></td>
    34.                    <td><input type=\"submit\" value=\"отправить\" name=\"send\"><td>
    35.             </tr>
    36.            </form>
    37.            </table>";
    38.  
    39.  
    40.  
    41. if ( isset($_POST['delete']) ) {
    42. // Удаляем записи
    43. }
    44. if ( isset($_POST['send']) ) {
    45. // Отправляем почту
    46. }
    47.  
    48. ?>
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $table='`users`'; 
    Код (PHP):
    1. while($row=mysql_fetch_assoc($res)) {
    2. $tab.='<tr>
    3.             <td><input type=checkbox name="select[]" value='.$row['id'].'></td>
    4.             <td>'.$row['name'].'</td>
    5.             <td>'.$row['email'].'</td>
    6.             <td>[url="edit.php?edit="]Edit[/url]</td>
    7.       </tr>';
    8. } 
     
  11. patrik

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

    С нами с:
    21 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Спасибо! Подправил код

    Код (PHP):
    1. <?php
    2. error_reporting(E_ALL ^ E_NOTICE);
    3. include_once('config.php');
    4.  
    5. $table = '`users`';
    6.  
    7. $query = "SELECT * FROM $table";
    8.  
    9. $res = mysql_query($query) or die(mysql_error());
    10.  
    11. $tab1 = '<table border="1">
    12.      <form method="POST">
    13.      <tr>
    14.           <td> </td>
    15.           <td>имя</td>
    16.           <td>Email</td>
    17.           <td>Edit</td>
    18.       </tr>';
    19.  
    20. while ($row = mysql_fetch_array($res)) {
    21. $tab .= '<tr>
    22.           <td><input type=checkbox name="select[]" value='.$row['id'].'></td>
    23.           <td>'.$row['name'].'</td>
    24.           <td>'.$row['email'].'</td>
    25.           <td>[url="edit.php?edit='.$row['id'].'"]Edit[/url]</td>
    26.      </tr>';
    27. }
    28.  
    29. $tab2 = '<tr>
    30.           <td></td>
    31.           <td></td>
    32.           <td><input type="submit" value="Удалить" name="delete" />
    33.               <input type="submit" value="отправить" name="send" /></td>
    34.      </tr>
    35.      </form>
    36.      </table>';
    37.  
    38. echo $tab1 . $tab . $tab2;
    39.  
    40. if ( isset($_POST['delete']) ) {
    41. // Удаляем записи
    42. }
    43. if ( isset($_POST['send']) ) {
    44. // Отправляем почту
    45. }
    46.  
    47. ?>
    Начал реализовывать ссылку Edit. Cоздал файл edit.php
    Код (PHP):
    1. <?php
    2. include_once('config.php');
    3.  
    4. $table = '`users`';
    5.  
    6.  
    7. if(isset($_POST['submit_edit'])) {
    8.     $query = "UPDATE $table SET name='".$_POST['name']."', email='".$_POST['email']."' WHERE id='".$_POST['update']."'";
    9.     mysql_query($query) or die (mysql_error());
    10. }
    11.  
    12. if (isset($_GET['edit'])) {
    13.     $edit = intval($_GET['edit']);
    14.     $query="SELECT * FROM $table WHERE (id='$edit')";
    15.     $result = mysql_query($query) or die(mysql_error());
    16.     $row = mysql_num_rows($result);
    17.  
    18. if($row > 0) {
    19.     $row = mysql_fetch_array($result);
    20.     $tab = '<form method="post" name="edit_form">
    21.         <input type="hidden" name="update" value="'.$row['id'].'" />
    22.         <table border="1">
    23.         <tr>
    24.           <td colspan="2"><b><i><div id="num">id#'.$row['id'].'</b></i></td>
    25.         </tr>
    26.         <tr>
    27.           <td>Имя:</td>
    28.           <td><input type="text" value="'.$row['name'].'" name="name" /></td>
    29.         </tr>
    30.         <tr>
    31.           <td>E-mail:</td>
    32.           <td><input type="text" value="'.$row['email'].'" name="email" /></td>
    33.         </tr>
    34.         <tr>
    35.           <td align="center"><input type="submit" name="submit_edit" value="Сохранить изменения" /></td>
    36.         </tr>
    37.         </table>
    38.         </form>
    39.         <p>[url="'.$_SERVER['HTTP_REFERER'].'"]назад[/url]</p>';
    40. echo $tab;
    41.  
    42. }
    43. } else {
    44. echo 'не известный';
    45. }
    46. ?>
     
  12. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ну и на какой этот файл нужен?)
    Только лишние файлы создавать. =)

    И данные нужно экранировать при работе с базой данных.

    И у вас одни Нотисы...
     
  13. patrik

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

    С нами с:
    21 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Подправил код, теперь Нотисов нет.
    Данные перед отправкой в MySql экранировал.
    Сделал все одним файлом.

    Код (PHP):
    1. <?php
    2. include_once('config.php');
    3.  
    4. $table = '`users`';
    5. $tab='';
    6.  
    7. if(isset($_POST['submit_edit'])) {
    8.     foreach($_POST as $key => $value) {
    9.     $value=trim($value);
    10.     if (get_magic_quotes_gpc()) $value = stripslashes($value);
    11.     $value=htmlspecialchars($value);
    12.     $value=mysql_real_escape_string($value);
    13.     $_POST[$key]=$value;
    14.     }
    15.     $query = "UPDATE $table SET name='".$_POST['name']."', email='".$_POST['email']."' WHERE id='".$_POST['update']."'";
    16.     mysql_query($query) or die (mysql_error());
    17. }
    18.  
    19. if (isset($_GET['edit'])) {
    20.     $edit = intval($_GET['edit']);
    21.     $query="SELECT * FROM $table WHERE (id='$edit')";
    22.     $result = mysql_query($query) or die(mysql_error());
    23.     $row = mysql_num_rows($result);
    24.  
    25. if($row > 0) {
    26.     $row = mysql_fetch_array($result);
    27.     $tab = '<form method="post" name="edit_form">
    28.            <input type="hidden" name="update" value="'.$row['id'].'" />
    29.           <table border="1">
    30.           <tr>
    31.           <td colspan="2"><b><i><div id="num">id#'.$row['id'].'</b></i></td>
    32.          </tr>
    33.          <tr>
    34.           <td>Имя:</td>
    35.           <td><input type="text" value="'.$row['name'].'" name="name" /></td>
    36.          </tr>
    37.          <tr>
    38.           <td>E-mail:</td>
    39.           <td><input type="text" value="'.$row['email'].'" name="email" /></td>
    40.          </tr>
    41.          <tr>
    42.           <td align="center"><input type="submit" name="submit_edit" value="Сохранить изменения" /></td>
    43.         </tr>
    44.         </table>
    45.         </form>
    46.         <p>[url="edit.php"]назад[/url]</p>';
    47. echo $tab;
    48. } else {
    49. header('Location: edit.php');
    50. }
    51.  
    52. } else {
    53. $query = "SELECT * FROM $table";
    54.  
    55. $res = mysql_query($query) or die(mysql_error());
    56.  
    57. $tab1 = '<table border="1">
    58.           <form method="POST">
    59.           <tr>
    60.               <td> </td>
    61.               <td>имя</td>
    62.               <td>Email</td>
    63.               <td>Edit</td>
    64.            </tr>';
    65.  
    66. while ($row = mysql_fetch_array($res)) {
    67. $tab .= '<tr>
    68.         <td><input type="checkbox" name="select[]" value="'.$row['id'].'"></td>
    69.         <td>'.$row['name'].'</td>
    70.         <td>'.$row['email'].'</td>
    71.         <td>[url="?edit='.$row['id'].'"]Edit[/url]</td>
    72.     </tr>';
    73. }
    74.  
    75. $tab2 = '<tr>
    76.          <td></td>
    77.          <td></td>
    78.          <td><input type="submit" value="Удалить" name="delete" />
    79.              <input type="submit" value="отправить" name="send" /></td>
    80.       </tr>
    81.       </form>
    82.       </table>';
    83.  
    84. if ( isset($_POST['delete']) and isset($_POST['select'])) {
    85. echo 'Заглушка. Нажали удалить запись';
    86. }
    87. if ( isset($_POST['send']) and isset($_POST['select'])) {
    88. echo 'Заглушка.Нажали отправить почту';
    89. }
    90. echo $tab1 . $tab . $tab2 ;
    91. }
    92. ?>
     
  14. patrik

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

    С нами с:
    21 июн 2012
    Сообщения:
    27
    Симпатии:
    0
    Добавил удаление данных
    Код (PHP):
    1. <?php
    2. include_once('config.php');
    3.  
    4. $table = '`users`';
    5. $tab='';
    6.  
    7. if(isset($_POST['submit_edit'])) {
    8.     foreach($_POST as $key => $value) {
    9.     $value=trim($value);
    10.     if (get_magic_quotes_gpc()) $value = stripslashes($value);
    11.     $value=htmlspecialchars($value);
    12.     $value=mysql_real_escape_string($value);
    13.     $_POST[$key]=$value;
    14.     }
    15.     $query = "UPDATE $table SET name='".$_POST['name']."', email='".$_POST['email']."' WHERE id='".$_POST['update']."'";
    16.     mysql_query($query) or die (mysql_error());
    17. }
    18.  
    19. if (isset($_GET['edit'])) {
    20.     $edit = intval($_GET['edit']);
    21.     $query="SELECT * FROM $table WHERE (id='$edit')";
    22.     $result = mysql_query($query) or die(mysql_error());
    23.     $row = mysql_num_rows($result);
    24.  
    25. if($row > 0) {
    26.     $row = mysql_fetch_array($result);
    27.     $tab = '<form method="post" name="edit_form">
    28.            <input type="hidden" name="update" value="'.$row['id'].'" />
    29.           <table border="1">
    30.           <tr>
    31.           <td colspan="2"><b><i><div id="num">id#'.$row['id'].'</b></i></td>
    32.          </tr>
    33.          <tr>
    34.           <td>Имя:</td>
    35.           <td><input type="text" value="'.$row['name'].'" name="name" /></td>
    36.          </tr>
    37.          <tr>
    38.           <td>E-mail:</td>
    39.           <td><input type="text" value="'.$row['email'].'" name="email" /></td>
    40.          </tr>
    41.          <tr>
    42.           <td align="center"><input type="submit" name="submit_edit" value="Сохранить изменения" /></td>
    43.         </tr>
    44.         </table>
    45.         </form>
    46.         <p>[url="edit.php"]назад[/url]</p>';
    47. echo $tab;
    48. } else {
    49. header('Location: edit.php');
    50. }
    51.  
    52. } else {
    53. $query = "SELECT * FROM $table";
    54.  
    55. $res = mysql_query($query) or die(mysql_error());
    56.  
    57. $tab1 = '<table border="1">
    58.           <form method="POST">
    59.           <tr>
    60.               <td> </td>
    61.               <td>имя</td>
    62.               <td>Email</td>
    63.               <td>Edit</td>
    64.            </tr>';
    65.  
    66. while ($row = mysql_fetch_array($res)) {
    67. $tab .= '<tr>
    68.         <td><input type="checkbox" name="select[]" value="'.$row['id'].'"></td>
    69.         <td>'.$row['name'].'</td>
    70.         <td>'.$row['email'].'</td>
    71.         <td>[url="?edit='.$row['id'].'"]Edit[/url]</td>
    72.     </tr>';
    73. }
    74.  
    75. $tab2 = '<tr>
    76.          <td></td>
    77.          <td></td>
    78.          <td><input type="submit" value="Удалить" name="delete" />
    79.              <input type="submit" value="отправить" name="send" /></td>
    80.       </tr>
    81.       </form>
    82.       </table>';
    83.  
    84. if ( isset($_POST['delete']) and isset($_POST['select'])) {
    85.     foreach($_POST['select'] as $del) {
    86.     $query = "delete from $table where (id='$del')";
    87.     mysql_query($query) or die(mysql_error());
    88.    }
    89. header('Location: edit.php');
    90. }
    91. if ( isset($_POST['send']) and isset($_POST['select'])) {
    92. echo 'Заглушка.Нажали отправить почту';
    93. }
    94. echo $tab1 . $tab . $tab2 ;
    95. }
    96. ?>