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
Форумы портала PHP.SU :: Версия для печати :: Простой запрос к БД
Форумы портала PHP.SU » PHP » Программирование на PHP » Простой запрос к БД

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

1. hanns-g - 24 Марта, 2011 - 11:36:15 - перейти к сообщению
кратко:
система joomla, компонент К2
пытаюсь к модулю "пользователи онлайн" добавить аватар пользователя К2

есть таблица пользователей К2
есть колонка с ID пользователя и колонка с именем картинки(аватара)

вот что я пытался сделать:
PHP:
скопировать код в буфер обмена
  1. <a href="index.php?option=com_k2&view=itemlist&task=user&id=<?PHP echo $name->userid; ?>">
  2.     <img src="media/k2/users/<?PHP
  3.                                                
  4.  
  5.                 $db =& JFactory::getDBO();
  6.                 $userid = $name->userid;
  7.                 $mavatars = null;
  8.                 $mavatars = mysql_query("SELECT * FROM s_k2_users WHERE userID='$userid'");
  9.                                                
  10.                 //$query = 'SELECT * FROM #__k2_users WHERE userID="$userid"';
  11.                 //$db->setQuery($query);
  12.                 //$mavatars = $db->loadObjectList();
  13.                                
  14.                 echo "ERROR ".mysql_errno()." ".mysql_error()."\n";
  15.                                                
  16.                 foreach($mavatars as $mavatar){
  17.                         echo $mavatar->image;
  18.                 }
  19.                 //$userObject->items = null;
  20.                                                
  21.                 ?>" alt="<?PHP echo $name->username; ?>">
  22.    </a>


в поле имени картинки - текстовое с именем файла, чтото типа: "imegename.jpg"

кака я его только не крутил уже - или пусто, или ошибка

подскажите плиз
2. garvey - 24 Марта, 2011 - 12:51:36 - перейти к сообщению
1. Экранируйте запросы при помощи mysql_real_escape_string
2. Попробуйте выполнить ваш запрос в каком-нибудь клиенте MySQL. ТОлько вместо переменной какое-нибудь существующее значение.
3. Функция mysql_query возвращает не массив, а вы этот результат используете в foreach.
4. Приводите ошибки, которые бросает интерпретатор.
5. Даже если результат mysql_query был бы массивом, с чего вы решили, что его элементы - это объекты?
6. Название файла хранить в таблице не нужно в вашем случае (у юзера 1 аватар и есть ID). Называйте соответственно файлы. Намного удобней.
3. hanns-g - 24 Марта, 2011 - 13:15:27 - перейти к сообщению
я честно говоря в php и Mysql не селен, так поверхностно

сделал так:

$db =& JFactory::getDBO();

$userid = $name->userid;

$mavatars = mysql_query("SELECT image FROM s_k2_users WHERE userID='$userid'");

echo "ERROR ".mysql_errno()." ".mysql_error()."\n";

echo $mavatars;

по поводу $name->userid; - тут просто модуль выводит листинг пользователей
вот я и пыаюсь добавить в этот листингт аватар с другой таблицы по userid
4. garvey - 24 Марта, 2011 - 13:44:10 - перейти к сообщению
Вы остальные мои пункты читали?
PHP:
скопировать код в буфер обмена
  1. $mavatars = mysql_query("SELECT image FROM s_k2_users WHERE userID='$userid'");
  2. echo $mavatars;

Это бессмысленно. mysql_query возвращает resource или false.
5. JustUserR - 24 Марта, 2011 - 16:49:54 - перейти к сообщению
hanns-g Возможной причиной осуществления некорректного функционирования предполагаемого PHP-приложения, является использование несопоствленной высоты уровня базового элементного трактования для целевых информационных полей, вследствие которого не обеспечивается процесс диффереанции порядка вложения интепролируемых значений, в случае осуществление включения в них управляющих и ограничивающих элементов
6. hanns-g - 28 Марта, 2011 - 01:19:24 - перейти к сообщению
работает:
PHP:
скопировать код в буфер обмена
  1. $mavatars = mysql_query("SELECT image FROM s_k2_users WHERE userID='".$userid."'");
  2. $mavatar = mysql_result($mavatars, 0);
  3. echo $mavatar;


Улыбка всем спасибо!!!


может кому пригодится пример, если надо несколько полей:

PHP:
скопировать код в буфер обмена
  1. $mavatars = mysql_query("SELECT * FROM s_k2_users WHERE userID='".$userid."'");
  2. echo "ERROR ".mysql_errno()." ".mysql_error()."\n";
  3. $mavatar = mysql_fetch_array($mavatars);
  4.  
  5.  
  6.         echo $mavatar[image];
  7.         echo $mavatar[username];
  8.  

 

Powered by ExBB FM 1.0 RC1