За последние 24 часа нас посетил 89921 программист и 4368 роботов. Сейчас ищут 2352 программиста ...

Найдите ошибку пожалуйста

Тема в разделе "PHP для новичков", создана пользователем marikkil, 17 мар 2013.

  1. marikkil

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

    С нами с:
    16 мар 2013
    Сообщения:
    29
    Симпатии:
    0
    ПРошу вас найдите ошибку вроде все правильно сделал , ну почему то не удаляется запись

    <?

    /* Соединяемся с базой данных */
    $hostname = "localhost"; // название/путь сервера, с MySQL
    $username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
    $password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
    $dbName = "laba9"; // название базы данных

    /* Таблица MySQL, в которой хранятся данные */
    $table = "clients";

    /* Создаем соединение */
    mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

    /* Выбираем базу данных. Если произойдет ошибка - вывести ее */
    mysql_select_db($dbName) or die (mysql_error());

    $del= htmlspecialchars($_POST['deld']);
    /* Если была нажата ссылка удаления, удаляем запись */
    $dele = $query = "delete from $table where `name`=\"$del\" ";
    /* Выполняем запрос. Если произойдет ошибка - вывести ее. */
    mysql_query($query) or die(mysql_error());

    /* Заносим в переменную $res всю базу данных */
    $query = "SELECT * FROM $table";
    /* Выполняем запрос. Если произойдет ошибка - вывести ее. */
    $res = mysql_query($query) or die(mysql_error());
    /* Узнаем количество записей в базе данных */
    $row = mysql_num_rows($res);

    /* Выводим данные из таблицы */
    echo ("
    <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
    <html xmlns=\"http://www.w3.org/1999/xhtml\">

    <head>

    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />

    <title>Вывод и удаление данных из MySQL</title>

    <style type=\"text/css\">
    <!--
    body { font: 12px Georgia; color: #666666; }
    h3 { font-size: 16px; text-align: center; }
    table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }
    td { padding: 3px; text-align: center; vertical-align: middle; }
    .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }
    -->
    </style>

    </head>

    <body>

    <h3>Вывод и удаление ранее сохраненных данных из таблицы MySQL</h3>

    <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
    <tr style=\"border: solid 1px #000\">
    <td><b>#</b></td>
    <td align=\"center\"><b>Дата обращения</b></td>
    <td align=\"center\"><b>Имена пользователей</b></td>
    <td align=\"center\"><b>E-Mail пользователей</b></td>
    <td align=\"center\"><b>Тема сообщения</b></td>
    <td align=\"center\"><b>Сообщения пользователей</b></td>
    <td align=\"center\"><b>Удаление</b></td>
    </tr>
    ");

    /* Цикл вывода данных из базы конкретных полей */
    while ($row = mysql_fetch_array($res)) {
    echo "<tr>\n";
    echo "<td>".$row['id_cl']."</td>\n";
    echo "<td>".$row['name']."</td>\n";
    echo "<td>".$row['surname']."</td>\n";

    /* Генерируем ссылку для удаления поля */
    echo "<td><a name=\"deld\" href=\"new8.php?deld=".$row["name"]."\">Удалить</a></td>\n";
    echo "</tr>\n";
    }

    echo ("</table>\n");

    /* Закрываем соединение */
    mysql_close();

    /* Выводим ссылку возврата */
    echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>");

    ?>
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    ошибка какая?
     
  3. marikkil

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

    С нами с:
    16 мар 2013
    Сообщения:
    29
    Симпатии:
    0
    когда нажимаю удалить, в бд ничего не происходит
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    ошибка какая?

    Добавлено спустя 34 секунды:
    Код (Text):
    1. /* Если была нажата ссылка удаления, удаляем запись */
    2. $dele = $query = "delete from $table where `name`=\"$del\" ";
    3. /* Выполняем запрос. Если произойдет ошибка - вывести ее. */
    4. mysql_query($query) or die(mysql_error());
    ошибку выводит?
     
  5. marikkil

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

    С нами с:
    16 мар 2013
    Сообщения:
    29
    Симпатии:
    0
    нету ошибки
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    ок. делай так:
    строку $dele = $query = "delete from $table where `name`=\"$del\" ";
    замени на $query = "delete from $table where `name`=\"$del\" "; echo $query; exit();
    и сюда скопируй что напишет
     
  7. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Ссылка, зачем name="deld"?

    $_POST а должен быть $_GET
     
  8. marikkil

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

    С нами с:
    16 мар 2013
    Сообщения:
    29
    Симпатии:
    0
    всмысле deld? я его так назвал, а как еще сделать?

    Добавлено спустя 2 минуты 48 секунд:
    вот чо написало delete from clients where `name`=""
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    Что сам видишь тут?
     
  10. marikkil

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

    С нами с:
    16 мар 2013
    Сообщения:
    29
    Симпатии:
    0
    Подскажите пожалуйста вот здесь
    echo "<td><a name=\"deld\" href=\"new8.php?deld=".$row["name"]."\">Удалить</a></td>\n";
    знак вопроса что означает?
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    значит что дальше идут GET-параметры. он там правильно стоит.
    а
    $del= htmlspecialchars($_POST['deld']);
    ты берешь из POST-параметров.

    соотв. измени эту строку на $del= htmlspecialchars($_GET['deld']);
     
  12. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Не я не спорю есть такой атрибут у ссылки но он тебе тут не нужен
     
  13. marikkil

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

    С нами с:
    16 мар 2013
    Сообщения:
    29
    Симпатии:
    0
    я сменил $_POST на $_GET и все работает) но вот
    мне что уббрать name=\"deld\" ?
     
  14. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Как хочешь :) смысла в этом атрибуте нет.
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    почему нет? он же указывает, какую строку удалять
     
  16. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    В цикле выводит таблицу с ссылками на удаление. Все ссылки будут с атрибутом name="deld".
    Удаляет на основе $_GET параметра deld.

    Зачем ссылкам атрибут name="deld"?
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    А, я на это даже не посмотрел =) прости.
     
  18. marikkil

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

    С нами с:
    16 мар 2013
    Сообщения:
    29
    Симпатии:
    0
    всем спасибоо))
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    заработало? там беда у тебя... дырка в базу.
     
  20. streamland

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

    С нами с:
    16 апр 2012
    Сообщения:
    79
    Симпатии:
    0
    В ввиду отсутсвия экрана mysql_real_escape_string ?
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    угу. для начала.