[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Delete запрос, пожалуйста гляньте
Wahtel
Всем привет гуру PHP, пишу такой запрос в БД:


if($_GET["action"] == 'delete') {
$id = $_GET['id'];
if($id > 0)
{
$sql = "DELETE FROM `info` WHERE id = $id";
mysql_query($sql) or die(mysql_error());
}
}


Ничего не срабатывает, но если удалить эту строку
$id = $_GET['id'];
и потом добавить вместо $id вручную например 4, то 4-ая запись удалится, получается неверный id хранится в той переменной, а точнее вообще не понятно что, подскажите плс как мне достать id?
sergeiss
Перед этим ИФом напиши
echo '<pre>'.print_r( $_GET, 1).'</pre>';

и покажи (скопипасти сюда в тему), что будет выведено на экран.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Wahtel
Цитата (sergeiss @ 26.05.2015 - 00:38)
Перед этим ИФом напиши
<pre class="sh_sourceCode" rel="php"><span class="sh_function">echo</span> <span class="sh_string">'<pre>'</span><span class="sh_symbol">.</span><span class="sh_function">print_r</span><span class="sh_symbol">(</span> <span class="sh_variable">$_GET</span><span class="sh_symbol">,</span> <span class="sh_number">1</span><span class="sh_symbol">).</span><span class="sh_string">'</pre>'</span><span class="sh_symbol">;</span></pre>
и покажи (скопипасти сюда в тему), что будет выведено на экран.

Извиняюсь за долгий ответ, дело в том что когда я вставляю эту строку то просто выводится ошибка в консоли.


Error: [ngRepeat:dupes] http://errors.angularjs.org/1.3.15/ngRepea...ng%3A%22&p2=%22
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angul...ar.min.js:6:417
at https://ajax.googleapis.com/ajax/libs/angul...r.min.js:234:39
at Object.fn (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:122:291)
at n.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:123:356)
at n.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:293)
at l (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:81:240)
at M (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:85:342)
at XMLHttpRequest.F.onload (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:86:367)(anonymous function) @ angular.min.js:102


которая вообще никак не связана с БД
Wahtel
Цитата (sergeiss @ 26.05.2015 - 00:38)
Перед этим ИФом напиши
echo '<pre>'.print_r( $_GET, 1).'</pre>';

и покажи (скопипасти сюда в тему), что будет выведено на экран.

Дело в том что когда я нажимаю на delete, то запрос вроде как и нормально срабатывает
Wahtel
Цитата (sergeiss @ 26.05.2015 - 00:38)
Перед этим ИФом напиши
echo '<pre>'.print_r( $_GET, 1).'</pre>';

и покажи (скопипасти сюда в тему), что будет выведено на экран.

И что самое интересное, что id то оно правильно вытягивает, в чем же проблема?
Игорь_Vasinsky
Request payload ??

разве твой Id не должен находиться в урл и попадать в Query String Params, а ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
kaww
Wahtel
вместо

$id = $_GET['id'];

как-то так

$params = array();
parse_str(file_get_contents('php://input'), $params);
$id = $params['id'];

и поскольку у вас запрос DELETE, то лучше вместо

$_GET["action"] == 'delete'

проверять так:

$_SERVER['REQUEST_METHOD'] == 'DELETE'
Wahtel
Цитата (Игорь_Vasinsky @ 26.05.2015 - 14:42)
Request payload ??

разве твой Id не должен находиться в урл и попадать в Query String Params, а ?

Ну вот собственно ссылка на удаление, и там есть id

<a href="#/users?del={{user.id}}" ng-click="removeFriend( user )">delete</a>


и если в в функцию удаления добавить строку console.log(friend.id);

то она выводит правильный id
Wahtel
Цитата (kaww @ 26.05.2015 - 14:57)
Wahtel
вместо

$id = $_GET['id'];

как-то так

$params = array();
parse_str(file_get_contents('php://input'), $params);
$id = $params['id'];

и поскольку у вас запрос DELETE, то лучше вместо

$_GET["action"] == 'delete'

проверять так:

$_SERVER['REQUEST_METHOD'] == 'DELETE'

Сделал как вы сказали, но увы результат тот же(
Игорь_Vasinsky
Цитата
<a href="#/users?del={{user.id}}" ng-click="removeFriend( user )">delete</a>


при этом урл будет выглядеть так

/user?del = 2


а судя по твоему коду, должен выглядеть так

/user?action=delete&id=2


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Wahtel
Цитата (Игорь_Vasinskhttp://phpforum.su/index.php?act=Post&CODE=08&f=125&t=86415&p=3078911&st=0#y @ 26.05.2015 - 15:26)
Цитата
<a href="#/users?del={{user.id}}" ng-click="removeFriend( user )">delete</a>


при этом урл будет выглядеть так

/user?del = 2


а судя по твоему коду, должен выглядеть так

/user?action=delete&id=2

Ну нет, не будет он так выглядеть, так как я это делаю на аngularjs и мне не надо добавлять все это в url, у меня написан service где описана эта функция и выглядит это так

function removeFriend( id ) {

var request = $http({
method: "delete",
url: "server.php",
params: {
action: "delete"
},
data: {
id: id
}
}
);

return( request.then( handleSuccess, handleError ) );

}

там уже указан метод и action
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.