Перейти к содержимому

Реферальная программа Мегаплана


При передаче переменной методом post через форму она пустая

#11 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5
0

Отправлено 09 Март 2012 - 20:08

Где-то перед этой строкой, скорее всего, не закрыта инструкция, т.е., в конце строки пропущена точка с запятой. На сам запрос не ругается.

блин, точно. вот моя невнимательность! спасибо огромное!
  • 0

#12 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 09 Март 2012 - 20:10

Бывает ;)
Пожалуйста :)
  • 1


#13 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 09 Март 2012 - 20:19

еще ошибка возникла. делаю запрос на таблицу такой -

$result0 = mysql_query("SELECT title FROM categories WHERE id=$cat",$db);
  $myrow0 = mysql_fetch_array($result0);

сайт открывается, но на нем в одном месте вылезает такая ошибка - Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:homelocalhostwwwhavebookview_onebook.php on line 47
проверил таким образом -
$result0 = mysql_query("SELECT title FROM categories WHERE id=$cat",$db);
  $myrow0 = mysql_fetch_array($result0);
  if (mysql_num_rows > 0) { echo "рпо"; } else {echo "<p>Информация по запросу не может быть извлечена, в таблице нет записей.</p>";
exit();}
это получается, что из БД ничего не вытаскивается?
  • 0

#14 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 09 Март 2012 - 21:32

еще проверил таким способом:

  $myrow["cat"] = $cat;
  $result0 = mysql_query("SELECT title FROM categories WHERE id=$cat",$db);
  $myrow0 = mysql_fetch_array($result0);
  if (isset($myrow0)) {echo $myrow0["title"];} else {echo "переменная не существует";}
показывает ту же ошибку, и инструкция echo $myrow0["title"]; ничего не выводит. Получается, что в эту переменную не проходит запись из таблицы БД. Почему она не передается?
  • 0

#15 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 09 Март 2012 - 22:15

Подобные проблемы уже, если не изменяет память, были :)

это получается, что из БД ничего не вытаскивается?

Получается, что так. В функцию mysql_fetch_array() попадает не ресурс, а это значит, что результат запроса - не корректен.
Смотрим корректность составления запроса, а именно - что попадает в переменную $cat. Сразу после получения переменной выводим ее значение на экран и проверяем, есть ли такой идентификатор в БД:
echo $cat;

  • 0


#16 unfixed

unfixed
  • Пользователь
  • 21 сообщений
  • Репутация: 5

Отправлено 10 Март 2012 - 21:20

Наверное, зря волнуюсь, но все же что находится в переменной $db?
  • 0

#17 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 10 Март 2012 - 21:52

...что находится в переменной $db?

Указатель на открытое соединение с БД. Если работа происходит только с одной БД, то этот указатель напрочь не нужен... но тут уж дело привычки.
  • 0


#18 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 11 Март 2012 - 16:14

matroskin8, че-то теперь я вообще ничего не пойму... проверил переменную cat как ты говорил и оказалось, что в она пустая. Её я выводил из другой таблицы в предыдущем скрипте, вот фрагмент того кода:

$result = mysql_query("SELECT * FROM books WHERE id='$id'",$db);
if (!$result)
{
echo "<p>Запрос на выборку из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
$myrow["cat"] = $cat;
Но другие то переменные из массива $myrow выводятся. Например, $myrow["title"] $myrow["meta_d"] $myrow["meta_k"] выводятся через echo. Это что получается, что одно поле из таблицы не выводится, а остальные выводятся? Почему так может быть?
  • 0

#19 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 11 Март 2012 - 17:15

Ну так, может быть, не:

$myrow["cat"] = $cat;

а вот так нужно:
$cat = $myrow["cat"];

  • 0


#20 unfixed

unfixed
  • Пользователь
  • 21 сообщений
  • Репутация: 5

Отправлено 11 Март 2012 - 17:20

видимо, потому что ты присваиваешь существующей переменной $myrow["cat"] значение несуществующей переменной $cat.

* опоздал )

Сообщение отредактировал unfixed: 11 Март 2012 - 17:21

  • 1

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru