Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Почему переменная $qid не включается?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: И $submits тоже...
Contr
Отправлено: 05 Ноября, 2011 - 00:55:25
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




<html>
<body>
<?php
$db = pg_connect("host=localhost port=5432 dbname=S-H-V user=user1 password=mypass");
if ($qid) {
if ($submits) {
$result = pg_query($db, "UPDATE supply.factorylist SET fname='$fname',fnamefull='$fnamefull'
WHERE fnum=$qid");
echo "Thank you! Information updated.\n";
} else {
// query the DB
$result = pg_query($db, "SELECT * FROM supply.factorylist WHERE fnum=$qid");
$myrow = pg_fetch_row($result);
?>
<form method="post" action="<?php echo $PHP_SELF ?>">
<input type=hidden name="qid" value="<?php echo $myrow["fnum"] ?>">
сокращенное название завода:<input type="Text" name="fname" value="<?php echo $myrow["fname"] ?>"><br>
полное название:<input type="Text" name="fnamefull" value="<?php echo $myrow["fnamefull"] ?>"><br>

<input type="Submit" name="submits" value="Enter information">
</form>
<?php
}
} else {
// display list of employees
$result = pg_query($db, "SELECT * FROM supply.factorylist");
while ($myrow = pg_fetch_array($result)) {
printf("<a href=\"%s?qid=%s\">%s %s</a><br>\n", $PHP_SELF, $myrow["fnum"], $myrow["fname"], $myrow["fnamefull"]);
}
}
?>
</body>
</html>
 
 Top
sKaa
Отправлено: 05 Ноября, 2011 - 02:47:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


а почему она у тя должна включаться?
я конечно не уверен, но мне кажется то, что ты хотел тут выразить должно выглядеть как-то так :
PHP:
скопировать код в буфер обмена
  1.  
  2. $db = pg_connect("host=localhost port=5432 dbname=S-H-V user=user1 password=mypass");
  3. if (isset($_POST['qid'])) {
  4.         if(isset($_POST['submits'])){
  5.                 $qid = $_POST['qid'];
  6.                 $fname = $_POST['fname'];
  7.                 $fnamefull = $_POST['fnamefull'];
  8.                 $result = pg_query($db, "UPDATE supply.factorylist SET fname='$fname',fnamefull='$fnamefull' WHERE fnum=$qid");
  9.                 echo "Thank you! Information updated.\n";
  10.                 }else{
  11.                 // query the DB
  12.                 $result = pg_query($db, "SELECT * FROM supply.factorylist WHERE fnum=$qid");
  13.                 $myrow = pg_fetch_row($result);
  14.                 <form method="post" action="<?PHP echo $PHP_SELF ?>">
  15.                 <input type=hidden name="qid" value="<?PHP echo $myrow["fnum"] ?>">
  16.                 сокращенное название завода:<input type="Text" name="fname" value="<?PHP echo $myrow["fname"] ?>"><br>
  17.                 полное название:<input type="Text" name="fnamefull" value="<?PHP echo $myrow["fnamefull"] ?>"><br>
  18.                
  19.                 <input type="Submit" name="submits" value="Enter information">
  20.                 </form>
  21.                 <?PHP
  22.                 }
  23.         }else{
  24.         // display list of employees
  25.         $result = pg_query($db, "SELECT * FROM supply.factorylist");
  26.                 while ($myrow = pg_fetch_array($result)) {
  27.                 printf("<a href=\"%s?qid=%s\">%s %s</a><br>\n", $PHP_SELF, $myrow["fnum"], $myrow["fname"], $myrow["fnamefull"]);
  28.                 }
  29.         }
  30. ?>
  31.                
  32.  

(Отредактировано автором: 05 Ноября, 2011 - 02:48:55)

 
 Top
Contr
Отправлено: 05 Ноября, 2011 - 03:03:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




Вобщем, смотри:
здесь 2 "Если"
С самого начала первое if не проходит и мы идем к else в самый конец.
Там выводятся на печать гиперссылки со значениями из таблицы, ссылкой самой страницы. И когда мы кликаем на нужной гиперсылке в браузере открывается та же самая страница только со знаком ?qid=(нужное нам значение, например 1).
По идее, дальше переменная qid определена и мы входим в первое условие if ($qid). Так вот здесь моя переменная $qid почему-то значения не принимает. Как ты сказал $_post тоже не прокатила (
 
 Top
sKaa
Отправлено: 05 Ноября, 2011 - 04:29:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if(isset($_GET['qid'])){
  4.         // тут код если мы передали qid в адресной строке ($_GET)
  5.         $qid =  $_GET['qid']; // Сама переменная $qid;
  6.        
  7.         if(isset($_POST['submits'])){
  8.                 // Тут код если мы через $_POST передали значение submits
  9.                 $fname = $_POST['fname'];
  10.         $fnamefull = $_POST['fnamefull'];
  11.                 }else{
  12.                 // Тут если кнопку не нажимали
  13.                 /*
  14.                 Кстати у тя тут ";" местами сильная нехватка :
  15.                 вмето action="<?PHP echo $PHP_SELF ?>"> нужно action="<?PHP echo $PHP_SELF; ?>">
  16.                 а так-же : $myrow["fnum"], $myrow["fname"], $myrow["fnamefull"] тоже нужно ставить ";"
  17.                 */
  18.                 }
  19.         }else{
  20.         // тут код если qid в адресной строке пуст.
  21.         }?>

(Отредактировано автором: 05 Ноября, 2011 - 04:31:02)

 
 Top
Contr
Отправлено: 05 Ноября, 2011 - 05:27:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




sKaa, тебе спасибо. Помог. Я разобрался. Да, вся соль была в разнице Get и Post .
Только теперь далее по коду тоже проблема:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <html>
  3.     <body>
  4.         <?php
  5.        $db = pg_connect("host=localhost port=5432 dbname=S-H-V user=kardash password=arthur");
  6.        if (isset($_GET['qid'])) {
  7.            $qid = $_GET['qid'];
  8.            if (isset($_POST['submits'])) {
  9.                $qid = $_GET['qid'];
  10.                $fname = $_POST['fname'];
  11.                $fnamefull = $_POST['fnamefull'];
  12.                $result = pg_query($db, "UPDATE supply.factorylist SET fname='$fname',fnamefull='$fnamefull'
  13. WHERE fnum=$qid");
  14.                echo "Thank you! Information updated.\n";
  15.            } else {
  16. // query the DB
  17.                $result = pg_query($db, "SELECT * FROM supply.factorylist WHERE fnum=$qid");
  18.                $myrow = pg_fetch_row($result);
  19.                ?>
  20.                 <form method="post" action="<?php echo $PHP_SELF; ?>">
  21.                     <input type=hidden name="qid" value="<?php echo $myrow["fnum"] ?>">
  22.                     сокращенное название завода:<input type="Text" name="fname" value="<?php echo $myrow["fname"] ?>"><br>
  23.                     полное название:<input type="Text" name="fnamefull" value="<?php echo $myrow["fnamefull"] ?>"><br>
  24.  
  25.                     <input type="Submit" name="submits" value="Enter information">
  26.                 </form>
  27.                 <?php
  28.            }
  29.        } else {
  30. // display list of employees
  31.            $result = pg_query($db, "SELECT * FROM supply.factorylist");
  32.            while ($myrow = pg_fetch_array($result)) {
  33.                printf("<a href=\"%s?qid=%s\">%s %s</a><br>\n", $PHP_SELF, $myrow["fnum"], $myrow["fname"], $myrow["fnamefull"]);
  34.            }
  35.        }
  36.        ?>
  37.     </body>
  38. </html>


15 - 24 строчки. Когда первый IF успешно проходим, натыкаемся на второй и сворачиваем на ELSE. Здесь я хотел чтобы в форме для UPDATE вставлялись данные из БД. А он не вставляет. Пишет пустые формы. Почему? Вроде "Select .. FROM table" есть... В чем дело?
Решил. 18 стр $myrow = pg_fetch_row($result); заменить надо было на $myrow = pg_fetch_array($result);

Благодарю sKaa ))). Тема закрыта

(Отредактировано автором: 05 Ноября, 2011 - 05:48:47)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB