Недавно программируя столкнулся с такой проблемой: хотел писать код для выборки строки с помощью кнопки из определенной таблицы на другую страницу с методом POST. Вроде бы сделал все но результат не очень, дэбагов нет но и строка не переносится при клике соответствующей кнопки.
/* Соединяемся, выбираем базу данных */
$dblocation = "localhost";
$dbname = "baza";
$dbuser = "root";
$dbpasswd = "root";
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx)
{
exit("<P align='center'>B настоящий момент <B>сервер</B> базы данных недоступен, отображение страницы невозможно.</Р>");
}
if (!@mysql_select_db($dbname, $dbcnx))
{
exit("<P align='center'>B настоящий момент <B>база данных</B> недоступна, отображение страницы невозможно.</Р>");
}
print "<form name='Rezfrm' action='query_rezerv.php' method='POST' target='_parent'>";
mysql_query('SET CHARSET utf8');
/*считывание данных*/
$query = "select id, fio, gorod, adres, dom, comment from baza.zayavka;";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$id_ch=$query['id'];
/* Выводим результаты в html */
print "<table bgcolor=#D9E7F2 cellspacing=0 cellpadding=3 border=3 align=left style=\"border-style:solid; border-color:#1A658C\">\n";
print "<tr>";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">ID</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">ФИО</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Город</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Адрес</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Дом</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Комментарии</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Изменить</td>\n";
print "</tr>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "<tr>";
foreach ($line as $col_value) {
print "<td style=\"border-style:solid; border-color:#000099; border-width:1px;\">".$col_value."</td>\n";
}
print "<td style=\"border-style:solid; border-color:#000099; border-width:1px;\"><input type='submit' name='".$id_ch."' value='Выбрать'></td>\n";
while ($col<=$num_rows) {
print $col;
$col++;
}
print "</tr>\n";
}
print "</table>\n";
print "</form>";
mysql_free_result($result);
mysql_close($dbcnx);
Страница обрабтчик:
/* Соединяемся, выбираем базу данных */
$dblocation = "localhost";
$dbname = "baza";
$dbuser = "root";
$dbpasswd = "root";
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx)
{
exit("<P align='center'>B настоящий момент <B>сервер</B> базы данных недоступен, отображение страницы невозможно.</Р>");
}
if (!@mysql_select_db($dbname, $dbcnx))
{
exit("<P align='center'>B настоящий момент <B>база данных</B> недоступна, отображение страницы невозможно.</Р>");
}
$id=$_POST['id_ch'];
/* Выполняем SQL-запрос */
$query = "select * from baza.zayavka where id='".$id."';";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
/* Выводим результаты в html */
print "<table bgcolor=#D9E7F2 cellspacing=0 cellpadding=3 border=3 align=left style=\"border-style:solid; border-color:#1A658C\">\n";
print "<tr>";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">ID</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">ФИО</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Город</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Адрес</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Дом</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Комментарии</td>\n";
print "</tr>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "<tr >";
foreach ($line as $col_value) {
print "<td style=\"border-style:solid; border-color:#000099; border-width:1px;\">".$col_value."</td>\n";
}
print "</tr>\n";
}
print "</table>\n";
mysql_free_result($result);
mysql_close($dbcnx);
Файл архив вместе с базой "Выборка.rar" загружено на форум. Просмотрите кто сможет и жду ваших рекомендаций.
Заранее thanks
Спустя 30 минут, 10 секунд (29.06.2010 - 14:40) SlavaFr написал(а):
Цитата (dozent @ 29.06.2010 - 11:10) |
Вроде бы сделал все но результат не очень, дэбагов нет но и строка не переносится при клике соответствующей кнопки. |
ну так инсталируй себе debuger или просто с echo поработай
Спустя 19 минут, 10 секунд (29.06.2010 - 14:59) tomash написал(а):
вот эту строку переделать
input type='submit' value='".$id_ch."' name='id_sh'
Спустя 17 часов, 45 минут, 8 секунд (30.06.2010 - 08:44) dozent написал(а):
tomash
Цитата (tomash @ 29.06.2010 - 11:59) |
вот эту строку переделатьinput type='submit' value='".$id_ch."' name='id_sh' |
ведь присваивание
value='".$id_ch."'не играет роли здесь по моему, я посредством свойствы
name=""отправить формой ID строки на другую, а затем обратно считывать с базы по этой ID всю строку.
Спустя 1 час, 25 минут, 34 секунды (30.06.2010 - 10:10) tomash написал(а):
dozent
value='".$id_ch."'передаем значение в html
name='id_sh'по этому имени переменная будет искаться в массиве $_POST
Спустя 6 дней, 4 часа, 24 минуты (6.07.2010 - 14:34) dozent написал(а):
tomash
value='".$id_ch."'передал значение в html
name='id_sh'по этому имени переменная должна была искаться в массиве $_POST. Но вместо всего этого ничего печатается кроме загаловков таблицы, пробовал печатать
$id=$_POST['id_sh']- печатается буква s
Спустя 3 минуты, 7 секунд (6.07.2010 - 14:37) dozent написал(а):
SlavaFr
дебаггер тут не причем просто код процедуры в порядке на дебаг, просто считывать всю строку по id переданному методом $_POST не получается.
дебаггер тут не причем просто код процедуры в порядке на дебаг, просто считывать всю строку по id переданному методом $_POST не получается.
Спустя 25 минут, 51 секунда (6.07.2010 - 15:03) SlavaFr написал(а):
Цитата (dozent @ 6.07.2010 - 11:37) |
SlavaFr дебаггер тут не причем просто код процедуры в порядке на дебаг, просто считывать всю строку по id переданному методом $_POST не получается. |
1)если дебаг непричем, то тогда зачем писать что его нет? Теперь я понимаю, что ты перепутал Баг с Дебагом. К стате мой ответ был самым вежливым который я довал при описании проблемы (Вроде бы сделал все но результат не очень)
2)метода $_POST не существует, есть просто method="post"
3)А дебаггер я бы все ровно посоветовал бы, так как он помогает самаму проблему локализировать http://xdebug.org/.
Спустя 19 часов, 30 минут, 1 секунда (7.07.2010 - 10:33) dozent написал(а):
SlavaFr
Цитата |
1)если дебаг непричем, то тогда зачем писать что его нет? Теперь я понимаю, что ты перепутал Баг с Дебагом. К стате мой ответ был самым вежливым который я довал при описании проблемы (Вроде бы сделал все но результат не очень) |
Я имел в виду, что все работает без ошибок кроме пустого результата, а за дебаггер брагодарен

Уважаемые форумчане вопрос так и остался открытым

Спустя 11 минут, 57 секунд (7.07.2010 - 10:45) linker написал(а):
В первом файле
$id_ch=$query['id']; - Что это за конструкция? Переменная $query содержит строку запросы, а вы пытаетесь ей сделать $query['id']
Уберите <form> и POST тут не нужен, как и submit, достаточно кнопки с кодом
Другой вариант с $_POST.
$query = "select id, fio, gorod, adres, dom, comment from baza.zayavka;";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$id_ch=$query['id'];
$id_ch=$query['id']; - Что это за конструкция? Переменная $query содержит строку запросы, а вы пытаетесь ей сделать $query['id']
Уберите <form> и POST тут не нужен, как и submit, достаточно кнопки с кодом
<input type="button" value="Выбрать" onclick="parent.location=''query_rezerv.php?id=' . $line['id'] . '">и использовать $_GET вместо $_POST.
Другой вариант с $_POST.
echo '<input type="submit" value="Выбрать" onclick="document.getElementById('id').value = ' . $line['id'] . '"></td>';
...
echo '<input type="hidden" id="id" name="id" value="0">';
print "</form>";
Спустя 21 день, 1 час, 2 минуты, 16 секунд (28.07.2010 - 11:47) dozent написал(а):
linker,
Решил сделать по другому.... т.е. выбирать не по button -ам а по checkbox -ами. Вставил следующую строку:
а в конце таблицы вашу строку:
т.е. решил сделать возможность выбора сразу несколькил строк по чекбоксу, но не факт результат cнтаксичсая ошибка с символом '[' не поймью почему.
Решил сделать по другому.... т.е. выбирать не по button -ам а по checkbox -ами. Вставил следующую строку:
<input type="checkbox" name="checkb" id=" . $line['id'] . '>
а в конце таблицы вашу строку:
<input type="button" value="Выбрать" onclick="parent.location=''query_rezerv.php?id=' . $line['id'] . '">
т.е. решил сделать возможность выбора сразу несколькил строк по чекбоксу, но не факт результат cнтаксичсая ошибка с символом '[' не поймью почему.
Спустя 55 минут, 14 секунд (28.07.2010 - 12:42) tomash написал(а):
у вас одинарная кавычка лишняя
Спустя 1 час, 31 минута, 43 секунды (28.07.2010 - 14:14) dozent написал(а):
tomash
Цитата |
у вас одинарная кавычка лишняя |
всмысле такая строка должна быть:
<input type="button" value="Выбрать" onclick="parent.location='query_rezerv.php?id=' . $line['id'] . '">
Спустя 6 дней, 1 час, 41 минута, 19 секунд (4.08.2010 - 15:55) dozent написал(а):
Неужели нет решения!!!
Хоу сделать все через checkbox-ы... в конце каждой строки после запроса вставляю checkbox, затем в конце кнопку для обработки:
код:
Короче запутался конкретно, отзовитесь граждане коддеры с развязкой проблема не понимаю где ошибка
Хоу сделать все через checkbox-ы... в конце каждой строки после запроса вставляю checkbox, затем в конце кнопку для обработки:
код:
$query = "select id, fio, gorod, adres, dom, comment from baza.zayavka;";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$id_ch=$query['id'];
/* Выводим результаты в html */
print "<table bgcolor=#D9E7F2 cellspacing=0 cellpadding=3 border=3 align=left style=\"border-style:solid; border-color:#1A658C\">\n";
print "<tr>";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">ID</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">ФИО</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Город</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Адрес</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Дом</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Комментарии</td>\n";
print "<td style=\"color:#FFFFFF;background-color:#000099;border-style:solid; border-color:#1A658C; border-width:1px;\">Изменить</td>\n";
print "</tr>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "<tr>";
foreach ($line as $col_value) {
print "<td style=\"border-style:solid; border-color:#000099; border-width:1px;\">".$col_value."</td>\n";
}
print "<td style=\"border-style:solid; border-color:#000099; border-width:1px;\"><input type=\"checkbox\" id=\".$line['id'].\"></td>\n";
print "</tr>\n";
print "<tr>";
print "<td colspan=\"7\" style=\"border-style:solid; border-color:#000099; border-width:1px;\"><input type="button" value="Выбрать" onclick="parent.location=''query_rezerv.php?id=' . $line['id'] . '"></td>\n";
print "</tr>\n";
}
print "</table>\n";
Короче запутался конкретно, отзовитесь граждане коддеры с развязкой проблема не понимаю где ошибка

Спустя 2 часа, 37 минут, 26 секунд (4.08.2010 - 18:33) Michael написал(а):
print "<td colspan=\"7\" style=\"border-style:solid; border-color:#000099; border-width:1px;\"><input type=\"button\" value=\"Выбрать\" onclick=\"document.location='query_rezerv.php?id={$line['id']}'\"></td>\n";
Спустя 2 часа, 57 минут, 10 секунд (4.08.2010 - 21:30) linker написал(а):
print "<td style=\"border-style:solid; border-color:#000099; border-width:1px;\"><input type=\"checkbox\" id=\".$line['id'].\"></td>\n";переписать
print '<td style="border-style:solid; border-color:#000099; border-width:1px;"><input type="checkbox" id="' . $line['id'] . '"></td>';