|
|
|
| Господа, подскажите, ниже приведён скрипт, как написать чтоб он переводил на определённую страницу и переносил с собой переменные
<?php
$pn = $_POST['pn'];
$q = mysql_query ("select * from table where pn = '$pn'");
if ($q == '')
{
// переходим на страницу add.php
}
else
{
// переходим на страницу edit.php
}
?>
если через META, то почему-то он не передаёт глобальные переменные... | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 19:23)
| |
<?
if ($q == '') header("Location: add.php");
else header("Location: edit.php");
|
После имени скрипта можете указать и передаваемые парметры, если нужно, например:
<?
header("Location: add.php?par1=$var1&par2=$var2");
|
| |
|
|
|
|
|
|
|
для: sim5
(14.04.2008 в 19:41)
| | не хочет... в любом случае переводит на add.php... | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 19:55)
| | В любом случае, значит ваша переменная $q всегда пуста. | |
|
|
|
|
|
|
|
для: sim5
(14.04.2008 в 19:56)
| | может мне просто задачу надо сформулировать по-другому:
на странице admin.php мы вводим данные, которые передаются в check.php который смотрит на наличие совпадений в БД, критерий переменная 'pn', если запись в БД существует, то мы её редактируем, если нет, то добавляем новую запись. Так сказать хочу предотвратить дублирование записей в БД, но и не исключить их изменения.... | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 20:04)
| | Без разницы чего вы хотите, у вас выполняется условие:
если $q имеет пустое значение, то перейти на страницу add.php. Вы после запроса получили ресурс, и проверяете его не правильно, вам нужно проверять есть ли наличие записей в полученном запросе, а не является ли запрос пустым. | |
|
|
|
|
|
|
|
для: sim5
(14.04.2008 в 20:12)
| | а как это сделать? не могу допетрить... всё верно Вы говорите... как мне проверить наличие записей в полученном запросе? | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 20:16)
| | Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\check.php:5) - это о чём он? | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 20:20)
| | О том что заголовки посылаете после вывода в браузер
<?
if ($q) header("Location: edit.php")
else header("Location: add.php")
|
пробуйте так | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 20:20)
| | Вам надо читать и изучать документацию, вот о MySQL. Не думайте, что я вас пытаюсь "отфутболить", но вы должны знать это, если хотите что-то сделать.
По второму вопросу, это значит, что вы передаете заголовок после того, когда в браузер уже был вывод. Заголовки же надо передавать до любого вывода в браузер, даже до тега <?php не должно быть пробелов, не говоря уже об остальном. | |
|
|
|
|
|
|
|
для: sim5
(14.04.2008 в 20:45)
| | до тега <?php не должно быть пробелов
Это же относится к принклюженным файлам, там тоже не должно быть ни выводов ни пробелов не только перед <?php но и после ?> | |
|
|
|
|
|
|
|
для: Valick
(14.04.2008 в 20:49)
| | "Warning" был из-за того что я не подключился к БД.... про запросы - понял, буду искать... | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 20:57)
| | Да, вывод ошибки, это тоже вывод в браузер, соответственно вы получите сообщение о невозможности передачи заголовка. | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 20:57)
| | ответ прост - " if (mysql_num_rows($q) == 0) "!!! Спасибо за пинок... )) | |
|
|
|
|
|
|
|
для: MIB
(14.04.2008 в 19:23)
| | >
>$q = mysql_query ("select * from table where pn = '$pn'");
>
Можно убрать ковычки одинарные. "select * from table WHERE pn=$pn");
А глобальную переменную можно передать так:
header("Location: add.php?par1=$pn");
|
| |
|
|
|