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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Manson
Отправлено: 06 Апреля, 2012 - 21:08:46
Post Id


Новичок


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


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




Сделал вывод вещей в инвентарь. Но выводится только по одной вещи. Я смутно представляю как работать с WHILE, если конечно это она тут нужна.

Прошу вашего совета Улыбка

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. include("includes/config.php");
  3. $main = new pgcms("Ваш игровой инвентарь");
  4. if(isLoggedIn())
  5. {
  6.  
  7. $user = $main->userInfo();
  8.  
  9. $res = mysql_query("SELECT * FROM items, items_own WHERE items.id = items_own.itemid AND items_own.userid = ".$user['id']);
  10. $row = mysql_fetch_array($res);
  11. ?>
  12. <h1>Вещи в рюкзаке</h1>
  13. <div style="float:left; padding-top:10px;padding-left:10px;"><a href="<?=site_url."/item/".$row['alt_name']?>"><image src="../style/items/<?=$row['image_b']?>" width="90px" height="90px"></a></div>
  14. <div class='apraksts' style="width:450px; float:right">
  15. <a href="<?=site_url."/item/".$row['alt_name']?>"><b><?=$row['name']?></b></a> <b>Взять:</b> [Правая рука | Левая рука]<br>
  16. <b>Вес:</b> <?=$row['weight']?><br>
  17. Прочность предмета: <?=$row['mygood']?><br>
  18. Передать<br>
  19. <b>Продать</b> (<?=$row['price']?>$)</div>
  20.  
  21. <?
  22. }
  23. else
  24. {
  25. echo error("Зайдите под своим логином!");
  26. }
  27. ?>
 
 Top
Bio man
Отправлено: 06 Апреля, 2012 - 21:12:08
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




 
 Top
Manson
Отправлено: 06 Апреля, 2012 - 21:22:41
Post Id


Новичок


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


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




Ну и ничего. Все пропало.
 
 Top
Данил_123
Отправлено: 06 Апреля, 2012 - 21:29:50
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


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




используйте цикл если выводите более 1 значения, пример уже приведен.. да и браузерная без качественного ооп, будет несколько тормозить..


-----
http://mysitecost.ru
 
 Top
Bio man
Отправлено: 06 Апреля, 2012 - 21:38:23
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




Данил_123 пишет:
да и браузерная без качественного ооп, будет несколько тормозить..
Процедурный код быстрее ОО кода. А грамотный процедурный код вообще летает по сравнению с ОО кодом. Но без ООП никуда Улыбка
(Добавление)
Manson пишет:
Ну и ничего. Все пропало.
Фигурные скобки поставил?
 
 Top
Manson
Отправлено: 06 Апреля, 2012 - 21:44:03
Post Id


Новичок


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


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




Оцените пожалуйста код. Все ли нормально?

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. include("includes/config.php");
  3. $main = new pgcms("Ваш игровой инвентарь");
  4. if(isLoggedIn())
  5. {
  6.  
  7. $user = $main->userInfo();
  8.  
  9. $res = mysql_query("SELECT * FROM items, items_own WHERE items.id = items_own.itemid AND items_own.userid = ".$user['id']);
  10. while($row=mysql_fetch_assoc($res)) { ?>
  11. <div style="float:left; padding-top:10px;padding-left:10px;"><a href="<?=site_url."/item/".$row['alt_name']?>"><image src="../style/items/<?=$row['image_b']?>" width="90px" height="90px"></a></div>
  12. <div class='apraksts' style="width:450px; float:right">
  13. <a href="<?=site_url."/item/".$row['alt_name']?>"><b><?=$row['name']?></b></a> <b>Взять:</b> [Правая рука | Левая рука]<br>
  14. <b>Вес:</b> <?=$row['weight']?><br>
  15. Прочность предмета: <?=$row['mygood']?><br>
  16. Передать<br>
  17. <b>Продать</b> (<?=$row['price']?>$)</div>
  18. <? $i++;
  19. }
  20.  
  21. }
  22. else
  23. {
  24. echo error("Зайдите под своим логином!");
  25. }
  26. ?>
 
 Top
Bio man
Отправлено: 06 Апреля, 2012 - 21:53:23
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




Manson пишет:
Все ли нормально?
Ну если не считать, что логика не отделена от представления и то, что для работы с БД используется устаревший mysql_* вместо PDO или как минимум с MySQLi, то да, все нормально. Это не говоря о содаржании и архитектуре классов и подключение файла конфига (include("includes/config.php");). Про конфиг это мое имхо, но я бы хранил на уровень выше DOCUMENT_ROOT и представлял бы доступ через специальный класс, и сделал бы класс одиночкой (singleton)
 
 Top
Manson
Отправлено: 06 Апреля, 2012 - 21:59:08
Post Id


Новичок


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


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




Я ничего не понял, честно. Пишу по аналогии с существующим скриптом. Плюс мануалы.
 
 Top
avtor.fox
Отправлено: 06 Апреля, 2012 - 22:14:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Bio man что-т Вы слишком задвинули.
ТС, для удобства я Вам посоветую не писать весь код в одну строчку.

Если оставить всё как есть ( не разделять логику от визуального представления), то я бы сделал вот так.

PHP:
скопировать код в буфер обмена
  1. include("includes/config.php");
  2. $main = new pgcms("Ваш игровой инвентарь");
  3. if(isLoggedIn()){
  4.         $user = $main->userInfo();
  5.         $res = mysql_query("SELECT * FROM items, items_own WHERE items.id = items_own.itemid AND items_own.userid = ".$user['id']);
  6.         $i = 0;
  7.         while($row=mysql_fetch_assoc($res)){
  8.                 echo "
  9.                         <div style='float:left; padding-top:10px;padding-left:10px;'>
  10.                                 <a href='site_url/item/".$row['alt_name']."'>
  11.                                         <image src='../style/items/".$row['image_b']."' width='90px' height='90px'>
  12.                                 </a>
  13.                         </div>
  14.                         <div class='apraksts' style='width:450px; float:right'>
  15.                                 <a href='site_url/item/".$row['alt_name']."'>
  16.                                         <b>".$row['name']."</b>
  17.                                 </a>
  18.                         <b>Взять:</b> [Правая рука | Левая рука]<br>
  19.                         <b>Вес:</b> ".$row['weight']."<br>
  20.                         Прочность предмета: ".$row['mygood']."<br>
  21.                         Передать<br>
  22.                         <b>Продать</b> (".$row['price'].")</div>
  23.                 ";
  24.         $i++;
  25.         }
  26. }
  27. else{
  28.         echo error("Зайдите под своим логином!");
  29. }


Древовидная структура намного лучше смотрится, так проще искать какую-то часть кода и ошибки.
 
 Top
Bio man
Отправлено: 06 Апреля, 2012 - 22:15:23
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




Manson пишет:
Я ничего не понял, честно
Значит есть повод задуматься и почитать про это.
 
 Top
etoYA
Отправлено: 07 Апреля, 2012 - 03:41:37
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Manson, я вообще не понимаю, как можно писать браузерную игру, незная основ? Однако
Я хоть и новичек, но знаний на какой-нибудь сайт имхо хватит, а у меня его до сих пор нет).
Мб вам лучше пока не стоит делать браузерную игру, а потренится на чем-то попроще?)
 
 Top
DelphinPRO
Отправлено: 07 Апреля, 2012 - 04:07:38
Post Id



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


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


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




etoYA пишет:
Мб вам лучше пока не стоит делать браузерную игру, а потренится на чем-то попроще?)

какая, по большому счету, разница, на чем тренировать свои навыки Улыбка хоть ты гостевуху пиши, хоть игру.. если есть время и желание. Вряд ли, конечно, выйдет что-то стоящее, но для обучения сойдет Улыбка
(Добавление)
avtor.fox пишет:
то я бы сделал вот так.

а я бы так не делал. html код по крайней мере будет подсвечиваться в редакторе.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
avtor.fox
Отправлено: 07 Апреля, 2012 - 11:12:38
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




DelphinPRO пишет:
а я бы так не делал. html код по крайней мере будет подсвечиваться в редакторе.

Хмм.. Пользуюсь notepad++ и он отлично подсвечивает открытие/закрытие тега. Этож не проблема.
 
 Top
DelphinPRO
Отправлено: 07 Апреля, 2012 - 11:30:58
Post Id



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


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


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




avtor.fox
на мой взгляд второй вариант гораздо читабельнее Улыбка
Прикреплено изображение (Нажмите для увеличения)
screenshot-20120407-123010.png


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
etoYA
Отправлено: 07 Апреля, 2012 - 11:40:32
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




DelphinPRO пишет:
какая, по большому счету, разница, на чем тренировать свои навыки

Я бы так не сказал, человек незная основ, хочет сделать игру, а такие игры делаются не 1 год, и делает не 1 человек).
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB