Доброго времени суток, занялся написанием скрипта который выводит список администраторов, тоесть лезет в таблицу users и смотрит в admin_level и если он выше 0, то выводит ник етого человека.(Ники находяться в етой же таблице, но в поле Login) Как сделать робочий скрипт?) вот то что я пробывал... PHP: <? include("conf.php"); //конектимся к базе $Connect=mysql_connect($base_name,$base_user, $base_pass) or die("WARNING"); //выбираем саму бд mysql_select_db ('game',$Connect); $sql="mysql_query(SELECT admin_level FROM 'users' )"; $result=mysql_fetch_array($sql); if ($result["admin_level"]>=1) echo "1 админ"; else echo " нет Админов"; ?>
Если не сложно покажи весь скрипт, ато выдает ошибку :Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\test2.ru\www\online.php on line 10 а потом пишет "нет админов".. Нужно что бы выводило всех администраторов точнее их логины.
Запрос составлен, а в базу не отправлен. Нет команды для посыла запроса базе. То, что в скобках - не считается. 'users' - это название таблицы, а не значение, поэтому должно быть `users`. PHP: <? include("conf.php"); //конектимся к базе $Connect=mysql_connect($base_name,$base_user, $base_pass) or die("WARNING"); //выбираем саму бд mysql_select_db ('game',$Connect); $result = mysql_query('SELECT `login` FROM `users` WHERE `admin_level` > 0'); //Прямо в запросе можно указать параметры выборки $resultar = mysql_fetch_array($result); if (!$resultar["login"]) { echo " нет Админов"; } else { foreach ($resultar["login"] as $login) { echo $login; } } ?>
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\test2.ru\www\online.php on line 8 нет Админов Warning: Invalid argument supplied for foreach() in z:\home\test2.ru\www\online.php on line 12 вот что выдает....Кстати спасибо Kreker, познавательный скрипт с комментариями)
Пожалуйста. Я промахнулся немного - забыл поменять переменную: $resultar = mysql_fetch_array($result); P.S. Подправил немного код. Смотри выше.
Warning: Invalid argument supplied for foreach() in z:\home\test2.ru\www\online.php on line 13 что ж с етим скриптом то такое))) Смотрел в учебниках, манулае...подобного не нашел)) PHP: <? include("conf.php"); //конектимся к базе $Connect=mysql_connect($base_name,$base_user, $base_pass) or die("WARNING"); //выбираем саму бд mysql_select_db ('game',$Connect); $result = mysql_query('SELECT `login` FROM `users` WHERE `admin_level` > 0'); //Прямо в запросе можно указать параметры выборки $resultar = mysql_fetch_array($result); if (!$resultar["login"]) { echo " нет Админов"; } else { foreach ($resultar["login"] as $login) { echo $login; } } ?>
народ, вы чего? PHP: <?php $db_host="localhost"; $db_user="user"; $db_pass="password"; $db_name="database"; $link = mysql_connect($db_host, $db_user, $db_pass); mysql_select_db($db_name, $link) or die("Invalid query: " . mysql_error()); $result = mysql_query('SELECT `Login` FROM `users` WHERE `admin_level`>0;') or die("Invalid query: " . mysql_error()); if(!mysql_num_rows($result)) echo 'нет'; else while($row = mysql_fetch_row($result)) echo $row[0].'<br>'; mysql_free_result($result); ?>
Еще вопрос, перед каждым ником администратора нужно показать картинку онлайна(тоесть, если он онлайн то 1.gif, если нет то 2.gif). Статус береться из таблицы online , если в етой таблице поле login пустое, то админ офлайн.Помогите пжалуйста, вот напоминаю скрипт : PHP: <html> <head> </head> <body bgcolor='tan'> <?php $db_host="localhost"; $db_user="root"; $db_pass=""; $db_name="game"; $link = mysql_connect($db_host, $db_user, $db_pass); mysql_select_db($db_name, $link) or die("Invalid query: " . mysql_error()); $result = mysql_query('SELECT `Login` FROM `users` WHERE `admin_level`>=1;') or die("Invalid query: " . mysql_error()); if(!mysql_num_rows($result)) echo 'нет'; else while($row = mysql_fetch_row($result)) echo "<b>$row[0]<br>"; mysql_free_result($result); ?> </body> </html>
неправильная логика у вас. не нужно отдельной таблицы для онлайнеров. когда юзер авторизован и просматривает странички обновляйте поле например last_active в той же таблице users. в качестве данных - текущее время (time() ежели что...) а в скрипте определите сколько минут с последней активности человека считать онлайн и посмотрите на комментарий к 21 строчке PHP: <html> <head> </head> <body bgcolor='tan'> <?php $db_host="localhost"; $db_user="root"; $db_pass=""; $db_name="game"; $link = mysql_connect($db_host, $db_user, $db_pass); mysql_select_db($db_name, $link) or die("Invalid query: " . mysql_error()); $result = mysql_query('SELECT `Login` FROM `users` WHERE `admin_level`>=1;') or die("Invalid query: " . mysql_error()); if(!mysql_num_rows($result)) echo 'нет'; else while($row = mysql_fetch_row($result)) { echo "<b>$row[0]<br>"; // !!!!!!!!!!!! вы тут болд открываете но нигде не закрываете, я волнуюсь... if($row['last_active']+300>=time()) // 300 секунд это 5 минут ;) echo '<img src="1.gif" alt="В сети">'; else echo '<img src="2.gif" alt="В реальном мире">'; } mysql_free_result($result); ?> </body> </html> спасибо