Помогите чайнику: "Проблема с массивом"

  • Автор темы k-$ty!E.saw
  • Дата начала

k-$ty!E.saw

Guest
Помогите чайнику: "Проблема с массивом"

Люди, пожалуйста подскажите как решить мою проблему.
Просто очень срочно нужно. Пишу скрипт просмотра личных сообщений пользователей форума PHPBB.
Версия PHP интерпретатора PHP 5.0.4
Проблема заключается вот в чем (может что-нибудь неправильно изложу, сильно не ругайте пишу на PHP недавно):
Приведу кусок кода:
//... - эта запись означает не относящийся к проблеме код
PHP:
<?php
class saw
{
 var $conn_db, $user_id, $msg;
 
 //...Описание конструктора, деструктора и некоторых других функций...
 
 function search ()
 {
  //...
  $res_arr=mysql_query("ЗАПРОС К БАЗЕ ДАННЫХ", $this->conn_db);
  //...
  while ($this->msg[]=mysql_fetch_array($res_arr, MYSQL_NUM))
  {
   // Заполнение нумерованного массива $this->msg
   continue;
  }
  //...
 }
 
 function output ()
 {
  $i=0;
  while ($i<=count($this->msg))
  {
   echo $i."\n<br>"; // посмотрим индекс элемента массива
   echo "SELECT privmsgs_date, privmsgs_to_userid, privmsgs_subject FROM ".$GLOBALS["prefix"]."_privmsgs WHERE privmsgs_id=".$this->msg[$i]."\n<br>";
   //А ВОТ в чем ПРОБЛЕМА: в строке выше смотрим а что же получается из строки после подстановки переменных
   //и что же мы имеем? а то что вместо значения $this->msg[$i] подставляется строка "Array"
   //я так понимаю что "Array" это тип выражения $this->msg[$i], а он ведь должен быть integer
   //следствие из этого - ошибка при отправке в базу данных запроса с такой строкой. =(
   $result=@mysql_query("SELECT privmsgs_date, privmsgs_to_userid, privmsgs_subject FROM ".$GLOBALS["prefix"]."_privmsgs WHERE privmsgs_id=".$this->msg[$i]."", $this->conn_db) or exit("error");
   //...
   $i++;
   //...
  }
 }
}
//...
?>
Подскажите пожалуйста, заранее спасибо!:confused:
 

Мутник

Новичок
[m]print_r()[/m] возможно тебе поможет...

а вообще, что мешает тебе посмотреть что куда попадает?

----------

or exit("error");

так не надо делать....
 

k-$ty!E.saw

Guest
Автор оригинала: Мутник
[m]print_r()[/m] возможно тебе поможет...

а вообще, что мешает тебе посмотреть что куда попадает?

----------

or exit("error");

так не надо делать....
Всмысле что куда попадает?
Через print_r() пробовал все в порядке, элементы массива и значения нормальные, тока как сделать чтобы он результат этой функции не выводил а подставлял в стоке запроса к БД?

or exit("error"); а это я для себя написал когда тестил.
 

svetasmirnova

маленький монстрик
IBSN
Да нет, вот ошибка:
>$this->msg[]=mysql_fetch_array($res_arr, MYSQL_NUM)
Естественно, что $this->msg[$i] - это Array
 

k-$ty!E.saw

Guest
Автор оригинала: IBSN
intval may be?
intval() возвращает 1 независимо от $i

-~{}~ 01.05.05 09:57:

Автор оригинала: svetasmirnova
IBSN
Да нет, вот ошибка:
>$this->msg[]=mysql_fetch_array($res_arr, MYSQL_NUM)
Естественно, что $this->msg[$i] - это Array
Подскажи тогда пожалуйста как быть?
 

IBSN

Новичок
mysql_fetch_array -- возвращает массив
ты пытаешься присвоить $this->msg[] массив, соответсвенно $this->msg[] === Array

Либо разбирай вложенный массив, либо не создавай такой массив.
 
Сверху