SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.12.2013 19:46:11

kostagal
Участник
Зарегистрирован: 20.12.2013
Сообщений: 2

Задание имени таблицы в SELECT переменной

существует 2 файла. В первом index.php построил форму с методом пост в которой происходит
передача значения $cat(должна содержать название таблицы в БД) на страницу test1.php.
Таким образом я хочу неявно задать имя таблицы в запросе. а по имени переменной.

Вопрос. Почему при первом обращении к базе переменная $cat определена, а при втором - она исчезает?! И как следствие нет вывода данных в поля формы.
Благодарю за внимание и возможно помощь.

Файл index.php

<?php
include("block/bd.php");/*Соединяемся с базой данных*/
?>
<!doctype html>
<html>
<head>
<meta charset="windows-1251">
<form id="form1" name="form1" method="post" action="test1.php">
         <p>
           <label>Введите название категории<br>
             <input type="text" name="cat" id="cat">
             </label>
         </p>

           <input type="submit" name="submit" id="submit" value="вывести товар из базы">
           </label>
</form>

</body>
</html>

Файл test1.php

<?php
include("block/bd.php");/*Соединяемся с базой данных*/
if (isset($_GET['id'])) {$id = $_GET['id'];}
if (isset($_GET['cat'])) {$id = $_GET['cat'];}

if (isset($_POST['id'])) {$id = $_POST['id']; if ($id == ''){unset($id);}}
if (isset($_POST['cat'])) {$cat = $_POST['cat']; if ($cat == ''){unset($cat);}}
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == ''){unset($title);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == ''){unset($text);}}
?>
<!doctype html>
<html>
<head>
<meta charset="windows-1251">
<title>Документ без названия</title>
</head>
<?
if (!isset($id))
{
Здесь видит переменную

$result = mysql_query("SELECT * FROM $cat");
$myrow = mysql_fetch_array($result);

do
{
printf ("<p><a href='test1.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"],$myrow["text"]);
}

while ($myrow = mysql_fetch_array($result));             
}
else

{

Здесь не видит переменную

$result = mysql_query("SELECT * FROM $cat WHERE id=$id");     
$myrow = mysql_fetch_array($result);

print <<<HERE

<form name="form1" method="post" action="update_item.php">
         <p>
           <label>Введите категорию<br>
             <input value="$myrow[cat]" type="text" name="cat" id="cat">
             </label>
         </p>
         <p>
           <label>Введите наименование<br>
           <input value="$myrow[title]" type="text" name="title" id="title">
           </label>
         </p>
         <p>
           <label>Введите описание<br>
           <input value="$myrow[text]" type="text" name="text" id="text">
           </label>
         </p>

         <input name="id" type="hidden" value="$myrow[id]">
        
         <p>
           <label>
           <input type="submit" name="submit" id="submit" value="Сохранить изменения">
           </label>
         </p>
       </form>



HERE;
}

?>
</body>
</html>

Неактивен

 

#2 22.12.2013 16:27:32

kostagal
Участник
Зарегистрирован: 20.12.2013
Сообщений: 2

Re: Задание имени таблицы в SELECT переменной

Задача решена.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson