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 :: синтаксис -переменные

 PHP.SU

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


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

> Без описания
юрьич
Отправлено: 11 Сентября, 2012 - 12:05:02
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Сент. 2012  


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




Здравствуйте.Был код с ф-цией printf().Вот часть кода:
PHP:
скопировать код в буфер обмена
  1. if (!empty($messages['id'])) {
  2. do //выводим все сообщения в цикле
  3.   {
  4. $author = $messages['author'];
  5. $result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора
  6. $myrow4 = mysql_fetch_array($result4);
  7.  
  8. if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
  9. $avatar = $myrow4['avatar'];
  10. }
  11. else {$avatar = "avatars/net-avatara.jpg";}
  12.  
  13.   printf("
  14.  <table>
  15.  <tr>
  16.  <td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td>
  17.  
  18.  <td>Автор: <a href='page.php?id=%s'>%s</a><br>
  19.      Дата: %s<br>
  20.           Сообщение:<br>
  21.          %s<br>
  22.          <a href='drop_post.php?id=%s'>Удалить</a>
  23.  
  24.  </td>  
  25.  </tr>
  26.  </table><br>
  27.  ",$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);


Переделал на print.Стало так:

PHP:
скопировать код в буфер обмена
  1. if (!empty($messages['id'])) {
  2. do //выводим все сообщения в цикле
  3.   {
  4. $author = $messages['author'];
  5. $result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора
  6. $myrow4 = mysql_fetch_array($result4);
  7.  
  8. if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
  9. $avatar = $myrow4['avatar'];
  10. $id = $myrow4['id'];
  11. $date = $messages['date'];
  12. $text = $messages['text'];
  13. $id1 = $messages['id'];
  14. }
  15. else {$avatar = "avatars/net-avatara.jpg";}
  16.   print"<table class='dd'>";
  17.  
  18.   print "<tr>";
  19.   print"<td ><a href='page.php?id=$id'><img alt='аватар' src='$avatar'></a></td>";
  20.  
  21.   print"<td>Автор: <a href='page.php?id=$id'>$author</a><br>";
  22.       print"Дата: $date<br>Сообщение:<br>$text<br>";
  23.          print"<a href='drop_post.php?id=$id1'>Удалить</a>";
  24.  
  25.   print"</td>";  
  26.   print"</tr>";
  27.  print"</table><br>";
  28.   }
  29.  
  30.   while($messages = mysql_fetch_array($tmp));


Но пришлось присваивать имена:

$avatar = $myrow4['avatar'];
$id = $myrow4['id'];
$date = $messages['date'];
$text = $messages['text'];
$id1 = $messages['id'];

так как при подставлении таким способом (пример):...<a href='page.php?id=".$myrow4['id']."'>...
не работало.Подскажите в чём ошибка,пожалуйста.

(Отредактировано автором: 11 Сентября, 2012 - 12:06:19)

 
 Top
OrmaJever Модератор
Отправлено: 11 Сентября, 2012 - 12:13:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




юрьич пишет:
так как при подставлении таким способом (пример)

таким способов всё как раз таки и будет работать, а что бы выводить масив в двойных кавычках его нужно взять в фигурные скобки.
PHP:
скопировать код в буфер обмена
  1. print"<td ><a href='page.php?id={$myrow4['id']}'><img alt='аватар' src='{$myrow4['avatar']}'></a></td>";


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 11 Сентября, 2012 - 12:24:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




не пользуйтесь print() echo для вывода HTML-кода
пожалейте свои и чужие глаза
код должен быть красиво оформлен, тогда он намного легче воспринимается.
я бы так написал
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (!empty($myrow4['avatar'])) {
  3.   //если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
  4.   $avatar = $myrow4['avatar'];
  5. } else {
  6.   $avatar = "avatars/net-avatara.jpg";
  7. }
  8. ?>
  9. <table class='dd'>
  10.   <tr>
  11.     <td>
  12.       <a href='page.php?id=<?=$myrow4['id']?>'>
  13.         <img alt='аватар' src='<?=$avatar?>'>
  14.       </a>
  15.     </td>
  16.     <td>
  17.       Автор: <a href='page.php?id=<?=$myrow4['id']?>'><?=$messages['author']?></a><br>
  18.       Дата: <?=$messages['date']?><br>
  19.       Сообщение:<br>
  20.       <?=$messages['text']?><br>
  21.       <a href='drop_post.php?id=<?=$messages['id']?>'>Удалить</a>
  22.     </td>
  23.   </tr>
  24. </table>
  25. <?PHP
  26. }
  27. ?>


Здесь на форуме подсветка смешанного кода плохо работает, но в нормальной IDE или редакторе, такое оформление выглядит на отлично.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
юрьич
Отправлено: 11 Сентября, 2012 - 12:31:43
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Сент. 2012  


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




Всё зароботало.Большое спасибо.Дело в том,что я с другог места посмотре пример:
print "<td class=tb1 align=center >Пользователь:</td><td class=tb1> ".$array['login'] . "</td></tr><tr> ";
но теперь вижу что здесь немного другой случай.Ещё раз спасибо.
 
 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