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

Сервис обмена электронных валют


Не выводится текст через оператор printf

#21 matroskin8

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

Отправлено 30 Январь 2012 - 18:49

resource(8) of type (mysql result) - это тип того, что находится в переменной $result3. В данном случае - это так называемый ресурс, который содержит ссылку на внешний ресурс (данные из БД). Число 8 (может быть любое другое целое число) - это уникальный номер ресурса.
NULL - это также специальный тип, который означает отстуствие значения, т.е. это значит, что в переменной ничего нет, ей ничего не присвоено. Проще говоря, в переменную $myrow3 ничего не попадает.
Здесь нужно отлаживать код и искать где ошибка. Что выдает такой код:
$id = (int)$_GET['id'];
$result3 = mysql_query ("SELECT * FROM comments WHERE post = $id") or die(mysql_error());
echo mysql_num_rows($result3);

  • 0


#22 Kuchuluk

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

Отправлено 01 Февраль 2012 - 17:26

matroskin8, извиняюсь, вчера не мог ответить, форум на реконструкции был. Прописал приведенный тобой код и браузер выдал просто цифру ноль.
Попробовал еще проверить с помощью такой конструкции:
echo '<pre>';
var_dump($_POST);

выдал такую запись:

array(1) {
["id"]=>
string(1) "3"
}
  • 0

#23 matroskin8

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

Отправлено 01 Февраль 2012 - 18:30

Если этот код выдал цифру ноль, то это значит, что в переменную $result3 ничего не попадает, т.е. запрос не выбрал из БД ни одной строки. Посмотри, что попадает в переменную $id и проверь через phpMyAdmin есть ли в таблице post такой идентификатор:
$id = (int)$_GET['id'];
echo $id;

UPD. Увидел содержимое массива POST... так ты переменную через этот массив передаешь? Из формы получаешь ее? Если да, то и получай ее из массива POST, а не GET... так пробуй:
$id = (int)$_POST['id'];
$result3 = mysql_query ("SELECT * FROM comments WHERE post = $id") or die(mysql_error());
// далее в цикле вывод результата

  • 0


#24 Kuchuluk

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

Отправлено 01 Февраль 2012 - 18:52

matroskin8, нет, я данные не из формы передаю. комментарии в базе хранятся, из базы пытаюсь их вывести. вот только не знаю каким способом. по-моему $_GET...
  • 0

#25 matroskin8

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

Отправлено 01 Февраль 2012 - 18:55

Блин... откуда приходит переменная $id? Ты же ее в запрос подставляешь, но не знаешь откуда она берется? Судя по этому:

Попробовал еще проверить с помощью такой конструкции:
echo '<pre>';
var_dump($_POST);

выдал такую запись:

array(1) {
["id"]=>
string(1) "3"
}

она у тебя берется из массива POST. Поэтому и получай ее из этого массива:
$id = (int)$_POST['id'];

  • 0


#26 Kuchuluk

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

Отправлено 01 Февраль 2012 - 18:58

matroskin8, спасибо, сейчас попробую.
  • 0

#27 Kuchuluk

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

Отправлено 01 Февраль 2012 - 20:18

matroskin8, все-таки переменная id методом GET передается, потому что я до этого не правльно написал, я вот такой командой проверял:

echo '<pre>';
var_dump($_GET);
И проверил переменную id на вовод, она выводится та, которая нужна. А переменную result3 когда на вывод проверяю выводится такое сообщение - Resource id #8
Не пойму почему в $result3 ничего не попадает.
  • 0

#28 matroskin8

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

Отправлено 01 Февраль 2012 - 21:48

То, что дамп переменной $result3 определен как ресурс я уже слышал... и это логично, поскольку в нее попадает результат запроса, а это всегда ресурс. Я спрашивал, что выводит такой код:
$id = (int)$_GET['id'];
echo $id;
и есть ли в таблице comments поле post с таким идентификатором. Выложи скрин соответствующей таблицы в БД.
  • 0


#29 Kuchuluk

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

Отправлено 02 Февраль 2012 - 17:20

matroskin8, этот код выводит идентификатор той статьи, по которой кликал на предыдущей странице.
вот скрин
Изображение
У той статьи, идентификатор которой совпадает со значением post, выводятся только слова "Комментарий добавил:" и "Дата:", но сами тексты комментариев не выводятся. А у остальных статей вообще ничего не выводится.
  • 0

#30 matroskin8

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

Отправлено 02 Февраль 2012 - 17:49

На скрине я вижу в поле post только идентификатор 2, а дамп переменной из глобального массива показывал результат 3... из этого напрашивается единственный вывод, что комментариев к этой статье попросту нет - потому ничего и не выбирает. Если ты уверен, что комментарии есть, но все равно не выбирает, то прикрепи в архиве дамп БД и 2 скрипта (1 - передающий идентификатор статьи, 2 - выбирающий комментарии).
На самом деле проблема пустячная и решается за 5 мин, но из-за того, что ты предоставляешь обрывочные, а иногда и просто ошибочные данные - она решается уже который день...
  • 0


robot

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


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