X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Есть вопросы по прмеру т-ща Exterior
region
region
Topic Starter сообщение 5.11.2009, 17:41; Ответить: region
Сообщение #1


За пример спасибо! Отличный!
Есть вопрос:
Сделал все тож самое (copy/paste) как в примере, только вот обновление и удаление данных из БД не работает. Правда делал без использования phpmyadmin (базу создавал ручками по примеру). В чем может быть проблема?
На примере удаления сделал такую фичу:
[PHP]
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("main", $con);
mysql_query("DELETE FROM test_table WHERE name='Иванов'");
mysql_close($con);
?>
[/PHP]
Указал принудительно чего удалять - результат есть, с переменной $del из примера результата нет!
Поиск по форуму показал, была похожая ситуация, но там ТС ошибся с регистром "ID", у меня с этим все нормально, проверил.
Подскажите куда копать!
P.S. Сильно не пинайте PHP+Mysql всего пару дней! Спасибо
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 5.11.2009, 18:25; Ответить: Webmaster_hb
Сообщение #2


вместо mysql_query
сделайте echo запроса и посмотрите что там получается
и вручную выполните этот запрос
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
region
region
Topic Starter сообщение 5.11.2009, 18:44; Ответить: region
Сообщение #3


Я правильно вас понял? Вместо mysql_query, сделал [PHP]echo($query); [/PHP] который показал значение = 1
[PHP]
/* Если была нажата ссылка удаления, удаляем запись */
$del = $query = "delete from $table where (id='$del')";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 5.11.2009, 19:38; Ответить: Webmaster_hb
Сообщение #4


[PHP]echo($query); [/PHP]
должен в данном случае вывести
delete from xxxx where (id='xxx')
но никак не 1
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
region
region
Topic Starter сообщение 6.11.2009, 9:53; Ответить: region
Сообщение #5


Если вставить эхо
$query
так, то
[PHP]$del = $query = "delete from $table where (id='$del')";
echo ($query);[/PHP]
выводит, но правда без ID:

delete from test_table where (id='')

гдето видимо значение потерялось.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 6.11.2009, 11:24; Ответить: Webmaster_hb
Сообщение #6


(region @ 6.11.2009, 11:53) *

delete from test_table where (id='')
гдето видимо значение потерялось.

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


попробуйте сделать echo $del;
в разных частях скрипта начиная с самого начала, и найдете проблему
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
region
region
Topic Starter сообщение 6.11.2009, 11:58; Ответить: region
Сообщение #7


Увы, но выполнение в разных частях кода
[php]echo ($del);[/php]
результата не дало, получилось так:
[php]delete from test_table where (id='')[/php]
Вставил принудительно значение ID раньше запроса на удаление
[php]
$del = ('6');
/* Если была нажата ссылка удаления, удаляем запись */
$del = $query = "delete from $table where (id='$del')";
[/php]
Тогда удаляет!
Вот часть кода который взят из примера:
[php]<?
................................................................................
...........
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
/* Если была нажата ссылка удаления, удаляем запись */
$del = $query = "delete from $table where (id='$del')";
................................................................................
............
/* Цикл вывода данных из базы конкретных полей */
while ($row = mysql_fetch_array($res)) {
echo "<tr>\n";
echo "<td>".$row['id']."</td>\n";
echo "<td>".$row['data']."</td>\n";
echo "<td>".$row['name']."</td>\n";
echo "<td>".$row['email']."</td>\n";
echo "<td>".$row['theme']."</td>\n";
echo "<td>".$row['message']."</td>\n";
/* Генерируем ссылку для удаления поля */
echo "<td><a name=\"del\" href=\"del_data.php?del=".$row["id"]."\">Удалить</a></td>\n";
................................................................................
...............
?> [/php]
Если я правильно понял, при нажатии на сслыку (помечено синим) переменной $del должен присваиваться "id", который нужен нам в запросе (помечено красным). При нажатии на ссылку удаления где "id=7" в адресной строке проскакивает
[URL]http://localhost/del_data.php?del=7[/URL]
, но в коде это значение не всплывает! Какие еще будут предложения?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
region
region
Topic Starter сообщение 6.11.2009, 12:06; Ответить: region
Сообщение #8


Получилось удалить, только после добавления:
[PHP]$del = $_GET["del"];[/PHP]
Всплывает вопрос - корректно ли использовать здесь функцию $_GET?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 6.11.2009, 12:13; Ответить: Webmaster_hb
Сообщение #9


(region @ 6.11.2009, 14:06) *
Получилось удалить, только после добавления:
[php]$del = $_GET["del"];[/php]Всплывает вопрос - корректно ли использовать здесь функцию $_GET?

ее просто необходимо использовать всегда
старый способ без получения переменных работает только на хостингах где включен режим PHP register_globals
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
region
region
Topic Starter сообщение 6.11.2009, 12:37; Ответить: region
Сообщение #10


А для обновления используем $_POST, таким образом в примере перед запросом добавил:
[PHP]
$test_name = $_POST['test_name'];
$test_mail = $_POST['test_mail'];
$test_theme = $_POST['test_theme'];
$test_mess = $_POST['test_mess'];
$update = $_POST['update'];
$submit_edit = $_POST['submit_edit'];
[/PHP]
Все Большое спасибо за пример, теперь я окончательно разобрался что-куда!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Есть смысл создавать сайты на латышском?
16 Nekit 3930 31.3.2024, 1:23
автор: Liudmila
Открытая тема (нет новых ответов) Есть ли инструмент для поиска запросов на YouTube?
1 rownong27 993 18.2.2024, 22:19
автор: malamut
Горячая тема (нет новых ответов) Pharmcashusa.com. Есть USA фарма траф? Вам сюда!
36 Herbalka 14619 11.12.2023, 21:27
автор: Herbalka
Открытая тема (нет новых ответов) Кликандеры: есть ли риски в 2023 году?
7 Kiloan_Frost 1676 19.11.2023, 14:46
автор: kuprum
Открытая тема (нет новых ответов) Есть ли прокси ipv4 до 20р за ip ?
14 freeax 5692 6.6.2023, 0:35
автор: xVOVAx


 



RSS Текстовая версия Сейчас: 19.4.2024, 18:29
Дизайн