powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP Удаление записи
12 сообщений из 12, страница 1 из 1
PHP Удаление записи
    #38648762
kolyan2288
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем) изучаю PHP по книгам, помогите найти ошибку (возможно синтаксическая) смысл скрипта ввод и удаление записей, не работает удаление
не выполняется условие
Код: php
1.
 if (isset($_POST['del']) AND $_POST['id']!='' )  


т к не видит что переданы POST данные, не могу понять почему это условие не видит их

вот весь код

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
<?php
 /* Соединение, выбор БД */
    $db_server = mysql_connect("localhost", "root", "")
        or die("Нет подключения к БД");
    print "Подключение выполнено";
    mysql_select_db("test") or die("Бд не выбрана");

    if (isset($_POST['autor'])&& 
        isset($_POST['title'])&&     
        isset($_POST['category'])&&     
        isset($_POST['year'])&&     
        isset($_POST['isbn']))
    {  
        $autor=$_POST['id'];
        $autor=$_POST['autor'];
        $title=$_POST['title'];
        $category=$_POST['category'];
        $year=$_POST['year'];
        $isbn=$_POST['isbn'];
        
        if (isset($_POST['del']) AND $_POST['id']!='' ) 
        { 
            
            $query="DELETE id FROM classics WHERE id='$id'";
            echo $query; 
            if (!mysql_query($query,$db_server))
                echo "Сбой при удалении данных:".$query.mysql_error()."<br/><br/>" ; 
             
        }
        else 
        {
            $query="INSERT INTO classics (autor,title,category,year,isbn) VALUES"."('$autor','$title','$category','$year','$isbn')";
             if (!mysql_query($query,$db_server))
                echo "Сбой при вставки данных:".$query.mysql_error()."<br/><br/>" ; 
            
        }
    }

echo <<< _END
   <form method="post" action="sqltest.php"> <pre>
           Автор <input type="text" name="autor"/>
           Заголовок <input type="text" name="title"/>
           Категория <input type="text" name="category"/>
           Год <input type="text" name="year"/>
           ISBN <input type="text" name="isbn"/>
    <input type="submit" value="ADD RECORD"/>
       </pre></form>
       
_END;

$query="SELECT * FROM classics";
$result=mysql_query($query);

if (!$result) die ("Cбой при подключении к бд ".mysql_error());
$row=mysql_num_rows($result);

for ($j=0;$j<$row;++$j)
{
    $row=mysql_fetch_row($result);
echo <<< _END
  <pre>
    id $row[0]
    autor $row[1]
    title $row[2]
    category $row[3]
    year $row[4]
    id $row[5]
  </pre>
    <form method="post" action="sqltest.php">
         <input type="hidden" name="del" value="del"/>
         <input type="hidden" name="id" value="$row[0]"/>
         <input type="submit" value="Delete RECORD"/></form>
_END;


}

if (isset($_POST['del'])) {
    echo 'есть пост del='.$_POST['del']. ' данные id='.$_POST['id'] ; 
} else
 echo 'нет пост del данные';
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38648813
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
var_dump($_POST)
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38648897
Sanjar88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему бы вам не принимать кнопку сабмит вместо скрытых полей ?
Код: php
1.
2.
3.
if($_POST['delete'] && (!empty($_POST['id'])){

}



и почему вы удаляете только id? может надо удалять всю строку ?
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38648986
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sanjar88а почему бы вам не принимать кнопку сабмит вместо скрытых полей ?
Код: php
1.
2.
3.
if($_POST['delete'] && (!empty($_POST['id'])){

}



и почему вы удаляете только id? может надо удалять всю строку ?

к теме не имеет никакого отношения ). И так и так оно ничего не увидит.
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38648988
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyan2288,

смотрим вложенность условий.
Код: php
1.
if (isset($_POST['del']) AND $_POST['id']!='' )


вложено в
Код: php
1.
2.
3.
4.
5.
if (isset($_POST['autor'])&& 
        isset($_POST['title'])&&     
        isset($_POST['category'])&&     
        isset($_POST['year'])&&     
        isset($_POST['isbn']))



Первое условие не выполняется, потому не выполняется и второе (так как условие просто не проверяется, ведь этот код просто пропускается).
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38649011
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда вы нажимаете Кнопку удалить у вас отправляется совсем другая форма и в ней нет полей
Код: php
1.
2.
3.
4.
5.
6.
if (isset($_POST['autor'])&& 
        isset($_POST['title'])&&     
        isset($_POST['category'])&&     
        isset($_POST['year'])&&     
        isset($_POST['isbn']))
    {


соответственно условие не выполняется и дальше скрипт не идет. Это в учебнике такой пример написан?)
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38649013
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

чуть не успел)
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38649181
kolyan2288
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо ребят, разобрался полностью так же не было присвоено id ну это я сам уже виноват

Код: php
1.
2.
$id=$_POST['id'];
$query="DELETE FROM classics WHERE id='".$id."'";



Учебник Робин Никсон, да пересмотрел его фигурной скобки нет после If оператора, поставил все работает, для учебной цели пример сгодится
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38649331
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyan2288спасибо ребят, разобрался полностью так же не было присвоено id ну это я сам уже виноват

Код: php
1.
2.
$id=$_POST['id'];
$query="DELETE FROM classics WHERE id='".$id."'";



Учебник Робин Никсон, да пересмотрел его фигурной скобки нет после If оператора, поставил все работает, для учебной цели пример сгодится

Вот блин же ))) Новичков так и учат писать кашу!!! Конкретную кашу.
Сочетания типа: html вёрстка созданная с помощью js скрипта, вытянутого из поля mysql таблицы считываемой с помощью php скрипта при условии, что отправленная ajax'ом форма будет состоять из полей (при этом проверка на php), которые прописаны в другом поле mysql таблицы с постпроверкой js скриптом на верность.

При этом всё это в одном файле, без визуального и структурного разделения.


Как по мне, так любая книжка по серверному вэб программированию должна сразу после описания классов, типов, функций и т.д. (разного фундамента), как только речь подходит к выводу в браузер, первой строкой должно быть:

хорошим тоном среди программистов считается разделение визуального форматирования страницы от основной логики сайта. Для этих целей было придумано множество шаблонизаторов и других специализированных под это продуктов. Такой код в разы легче отлаживать, редактировать и читать. Как только размеры кодов переваливают за 500-1000 строк, это становится ощутимым фактором.
Однако, использование шаблонизаторов (будет рассмотренно в главе ...)/(не рассматривается в этой книге), а потому мы будем применять небольшую хитрость. Мы с Вами уже успели ознакомиться с такой функцией как include, которая выполняет код php файла в том месте, где была вставлена. Всего в несколько строк мы напишем удобный инструмент для отделения кода от вёрстки:
Код: php
1.
2.
3.
4.
function loadTemplate($path, $aliases = array()){
    extract($aliases);
    include($path);
}



Кратко рассмотрим данную функцию. Она принимает на вход путь к php файлу и список переменных в виде массива (имя=>значение), которые должны быть в нём доступны.
функция extract распаковывает наш массив и делает доступными все его значения через синтаксис $varName. Например, если $aliases был таким: array("var1"=>"hi", "var2"=>"hello"), то после выполнения extract будут созданы 2 дополнительные переменные $var1 и $var2 со значениями "hi" и "hello" соответственно.

во второй строке функции мы выполняем код файла, путь к которому указан в первом аргументе функции.

Если сейчас Вам сложно осознать как это работает, значит Вы плохо читали книгу всё станет намного понятнее после совсем краткой практики во время прочтения следующих страниц.

ну а теперь попробуем вывести простенькую страничку:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
/* файл index.php */
<?php
  function loadTemplate($path, $aliases = array()){
      extract($aliases);
      include($path);
  }

  $title = "Моя первая страница на php";
  $text = "ВАУ!!! Так это же круть... Всё красиво и просто";
  loadTemplate("verstka.php", array("title"=>$title, "text"=>$text));
?>

/*файл verstka.php */
<html>
  <head>
    <title><?= $title ?></title>
  </head>
  <body><?= $text ?></body>
</html>



Подобный механизм шаблонизации (только разумеется намного сложнее, подобен он только внешне) используется в таком известном фреймворке как Yii.

Итак, давайте теперь попробуем вывести что-то более сложное, например .... бла-бла-бла ))) Я не писатель



Вот если мне кто покажет такую книгу для новичков, даже не будучи новичком, я с радостью прочту эту книгу... Уверен, что в отличие от многих написанных на данный момент книг, такая книга будет достойна моего внимания, как и внимания многих других.

Пробовал недавно почитать книгу по js одну (даже названия не запомнил)... На 100 какой-то странице стало так грустно, что я её закрыл и навсегда удалил со своего телефона... И начал читать научную фантастику
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38649514
kolyan2288
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёр спасибо круто все описал, Yii фреймворк я изучаю ООП знаю, все что вы описали мне понятен принцип, буду придерживаться к стилю ООП так же на самописках, для себя поставил задачу начать изучение с фреймворка, что благополучно получается,и параллельно рассматривать пустые примеры PHP MYSQL с учебников, и написать сайт полностью с нуля без готовых решении
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38649521
kolyan2288
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёр Эхх как мне не хвастает таких примеров как вы написали!
...
Рейтинг: 0 / 0
PHP Удаление записи
    #38649633
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyan2288 Програмёр спасибо круто все описал, Yii фреймворк я изучаю ООП знаю, все что вы описали мне понятен принцип, буду придерживаться к стилю ООП так же на самописках, для себя поставил задачу начать изучение с фреймворка, что благополучно получается,и параллельно рассматривать пустые примеры PHP MYSQL с учебников, и написать сайт полностью с нуля без готовых решении

Это ответ с пропущенными запятыми, или Вы термин ООП неверное понимаете? :)
Просто насчёт ООП все везде пропагандируют, но уже и на этом форуме (далеко ходить не надо) тема не раз обсуждалась и переобсуждалась... В общем "буду придерживаться к стилю ООП" - не всегда лучшее решение. Иногда бывают случаи, когда мышление в объектах не добавляет простоты (хотя конечно редко очень, но бывают) :) Сам уже несколько раз сталкивался.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP Удаление записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]