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 » » Хранение данных, их вывод и обработка » Помогите с выводом данных

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

1. Nooo - 08 Мая, 2011 - 00:26:13 - перейти к сообщению
Помогите с выводом данных из бд..
Изложу суть проблемы:
Когда заходишь под любого пользователя сайта например у которого id = 10 но скрипт выводит данные пользователя у которого id = 1 чет не пойму как это исправить( вот сам скрипт вывода...
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once '/config/connect_db.php';
  3.  
  4. $r1 = mysql_query('SELECT * FROM users');
  5. $myrow = mysql_fetch_array($r1);
  6.  
  7. if ( isset( $_SESSION['user'] ) ) {
  8.   // Для авторизованного посетителя
  9.  
  10.   if ($myrow['server'] >= 1) {
  11. echo '<br>';
  12. echo '<table style="border: 1px solid black; border-collapse: collapse;" width="100%" height="213" cellpadding="0">';
  13. include('panel/tmp/menu.php');
  14.  echo ' <tr>';
  15.  echo '   <td style="border: 1px solid black;" width="40%">&nbsp;Мониторинг сервера:</td>';
  16.  echo '   <td style="border: 1px solid black;" width="60%"></td>';
  17. echo '  </tr>';
  18. echo '  <tr>';
  19. echo '    <td style="border: 1px solid black;" class=".nhead2">&nbsp;IP-Адрес:</td>';
  20.  echo '   <td style="border: 1px solid black;" class=".nhead2">&nbsp;'.$myrow['ip'].':'.$myrow['id_user'].'</td>';
  21. echo '  </tr>';
  22. echo '  <tr>';
  23.  echo '   <td style="border: 1px solid black;" class=".nhead2">&nbsp;Стоимость:</td>';
  24.  echo '   <td style="border: 1px solid black;" class=".nhead2">&nbsp;'.$myrow['price'].' руб.</td>';
  25. echo '  </tr>';
  26.  echo ' <tr>';
  27. echo '    <td style="border: 1px solid black;" class=".nhead2">&nbsp;Осталось дней:</td>';
  28.   echo '  <td style="border: 1px solid black;" class=".nhead2">&nbsp;'.$myrow['day'].'</td>';
  29.  echo ' </tr>';
  30. echo '  <tr>';
  31.  echo '   <td style="border: 1px solid black;" class=".nhead2">&nbsp;Статус сервера:</td>';
  32.  echo '   <td style="border: 1px solid black;"><center><a href="/servers/'.$myrow['id_user'].'/start.php" target="_blank" ><img src="tmp/images/start.jpg"></img></a>&nbsp;<a href="/servers/'.$myrow["id_user"].'/stop.php" target="_blank"><img src="tmp/images/stop.jpg"></img></a>&nbsp;<a href="/servers/'.$myrow["id_user"].'/restart.php" target="_blank"><img src="tmp/images/restart.jpg"></img></a></center></td>';
  33.  echo ' </tr>';
  34.  echo ' <tr>';
  35.  echo '   <td style="border: 1px solid black;" class=".nhead2" >&nbsp;Слоты:</td>';
  36.  echo '   <td style="border: 1px solid black;" class=".nhead2">&nbsp;'.$myrow["slots"].'</td>';
  37. echo '  </tr>';
  38. echo '<table>';
  39.  echo ' <tr>';
  40.  echo '   <td >&nbsp;</td>';
  41.  echo '   <td >&nbsp;</td>';
  42. echo '  </tr>';
  43. echo '</table>';
  44. }
  45. else{
  46.  
  47. echo 'Для начала работы с сервером необходимо его заказать!<br><a href="/order.php">Заказать сервер можно тут.</a>';
  48.  
  49. }
  50. }
  51. else {
  52.   // Для не авторизованного посетителя
  53.  
  54. echo 'Уважаемый пользователь. Чтобы управлять своим сервером пожалуйста <a hraf="/register.php">зарегистрируйтесь.</a> Или зайдите в систему под вашим логином и паролем.';  
  55.  
  56.   }
  57.   ?>
2. EuGen - 08 Мая, 2011 - 00:41:57 - перейти к сообщению
Строка 4, исправить

на
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_SESSION['user']))
  3. {
  4.    $r1 = mysql_query('SELECT * FROM users WHERE id='.(int)($_SESSION['user']));
  5.    $myrow = mysql_fetch_array($r1);
  6. }
  7.  
3. zverko - 08 Мая, 2011 - 01:05:11 - перейти к сообщению
Все правельно, ты запрашиваешь всех юзеров ('SELECT * FROM users') и выводишь
их без цикла тоесть только первого.

Если я правельно понял то в $_SESSION['user'] храниться id.
Сначала проверь зарегин ли он а потом уже запрашивай бд по номеру id.
Если хочеш обращаться к массиву по имени столбцов ($myrow[ip] без кавычек)
в место mysql_fetch_array используй mysql_fetch_assoc.

PHP:
скопировать код в буфер обмена
  1. if ( isset( $_SESSION['user'] ) ) {
  2. $sql = "SELECT * FROM users WHERE id='".$_SESSION['user']."' LIMIT 1";
  3. $r1 = mysql_query($sql);
  4. $myrow = mysql_fetch_assoc($r1);
  5.  
  6. ...
  7. }


Если тебе надо будет вывести всех юзверей то зделай так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM users "; //можеш в конец добавить ORDER BY id это вывидит упорядоченный список по id
  2. $r1 = mysql_query($sql);
  3. while ($myrow = mysql_fetch_assoc($r1)){...}



Почитай про mysql запросы, тут все отлично описанно
http://www[dot]lissyara[dot]su/articles/[dot][dot][dot]se_descriptions/

 

Powered by ExBB FM 1.0 RC1