[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод из базы
top321
Всем привет. Я конечно не нуб в этом деле но вот понять не могу что за глюк такой. В общем дело такое вывожу я из базы данные а они выводятся не с первого значения а со второго. Пробовал различные варианты не помогло. Первый раз с таким столкнулся, раньше все гуд было.
Код
$query ="SELECT * FROM `user`";
$result = mysql_query($query, $db);
$row=mysql_fetch_array($result);
echo "User's<br>";
while($row = mysql_fetch_array($result))
{
echo "id: ".$row['user_id'];
echo "name:".$row['user_login']."<br>";
echo "name:".$row['user_password']."<br>";
echo "name:".$row['user_city']."<br>";
}




Спустя 1 час, 34 минуты, 22 секунды (16.07.2008 - 07:31) kirik написал(а):
попробуй -
$query ="SELECT * FROM `user`";
$result = mysql_query($query, $db);
// $row=mysql_fetch_array($result);
echo "User's<br>";
while($row = mysql_fetch_assoc($result))
{
echo "id: ".$row['user_id'];
echo "name:".$row['user_login']."<br>";
echo "name:".$row['user_password']."<br>";
echo "name:".$row['user_city']."<br>";
}

Спустя 21 час, 32 минуты, 43 секунды (17.07.2008 - 05:04) top321 написал(а):
спс, как я сам не додумался unsure.gif

Спустя 5 месяцев, 8 дней, 9 часов, 12 минут, 10 секунд (25.12.2008 - 15:16) novice написал(а):
Воспользовался этим примером, вывожу данные из базы этим
PHP
<?
require_once(
"lang/lang_stat.php");
echo "$shinobi_stat<br>";
?>
<table>
<tr>
<td>
<?
echo 
"$shinobi_name";
?>
</td>
<td>
<?
echo 
"$shinobi_war";
?>
</td>
<td>
<?
echo 
"$shinobi_win";
?>
</td>
<td>
<?
echo 
"$shinobi_lose";
?>
</td>
<td>
<?
echo 
"$shinobi_lvl";
?>
</td>
<td>
<?
echo 
"$shinobi_money";
?>
</td>
<td>
<?
echo 
"$shinobi_exp";
?>
</td>
</tr>
<?
$query 
="SELECT * FROM `shinobi_warstat`";
$result = mysql_query($query) or die(mysql_error());
while(
$row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><center>
<?
echo 
"".$row['id']."" ;
?>
</center></td>
<td><center>
<?
echo 
"".$row['war']."";
?>
</center></td>
<td><center>
<?
echo 
"".$row['win']."";
?>
</center></td>
<td><center>
<?
echo 
"".$row['lose']."";
?>
</center></td>
<td><center>
<?
echo 
"".$row['lvl']."";
?>
</center></td>
<td><center>
<?
echo 
"".$row['money']."";
?>
</center></td>
<td><center>
<?
echo 
"".$row['exp']."";
?>
</center></td>
</tr>
<?
}


Что теперь прописать вместо id

PHP
echo "".$row['id']."" ;


что бы отображал не id а ники из другой таблицы.
Ники у меня в этой таблице shinobi_users
SQL
CREATE TABLE `shinobi_users` (
`id` smallint(8) unsigned NOT NULL auto_increment,
`login` varchar(50) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`salt` char(3) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `login` (`login`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=23 ;

Спустя 4 часа, 14 минут, 37 секунд (25.12.2008 - 19:31) kirik написал(а):
Читай про JOIN.
Какая структура первой таблицы?

Спустя 11 часов, 4 минуты, 44 секунды (26.12.2008 - 06:35) novice написал(а):
Цитата (kirik @ 25.12.2008 - 16:31)
Читай про JOIN.
Какая структура первой таблицы?

Структура первой
SQL
CREATE TABLE `shinobi_warstat` (
`id` int(10) unsigned default NULL,
`war` int(6) unsigned default '10',
`win` int(6) default '10',
`lose` int(6) unsigned default '10',
`lvl` int(3) default '1',
`money` int(6) NOT NULL default '10',
`exp` int(7) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Спустя 43 минуты, 56 секунд (26.12.2008 - 07:19) kirik написал(а):
SQL
CREATE TABLE `shinobi_warstat` (
`id` int(10) unsigned default NULL,
`war` int(6) unsigned default '10',
`win` int(6) default '10',
`lose` int(6) unsigned default '10',
`lvl` int(3) default '1',
`money` int(6) NOT NULL default '10',
`exp` int(7) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `shinobi_users` (
`id` smallint(8) unsigned NOT NULL auto_increment,
`login` varchar(50) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`salt` char(3) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `login` (`login`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=23 ;


Запрос будет примерно такой
SQL
SELECT `u`.`login` FROM `shinobi_warstat` AS `w` INNER JOIN `shinobi_users` AS `u` ON `u`.`id` = `w`.`id` WHERE `w`.`id` = X

Спустя 3 дня, 41 минута, 53 секунды (29.12.2008 - 08:01) novice написал(а):
To kirik:
Спасибо, я долго сидел правда изучал твои вывод : ) потом читал ссылку которую дал и в результате попробовал сделать так
PHP
$query ="select shinobi_users.login, shinobi_warstat.war,win,lose,lvl,money,exp
  from shinobi_users
  inner join shinobi_warstat on shinobi_warstat.id = shinobi_users.id"
;
$result mysql_query($query) or die(mysql_error());
while(
$row mysql_fetch_assoc($result))
{

Такой же вариант тоже правильный? я проверил работает.
А в твоём варианте u w x что означает, таких же строк нету в таблице?

Спустя 21 минута, 32 секунды (29.12.2008 - 08:23) avrora написал(а):
Цитата (kirik @ 16.07.2008 - 04:31)

попробуй -
$query ="SELECT * FROM `user`";
$result = mysql_query($query, $db);
// $row=mysql_fetch_array($result);
echo "User's<br>";
while($row = mysql_fetch_assoc($result))
{
echo "id: ".$row['user_id'];
echo "name:".$row['user_login']."<br>";
echo "name:".$row['user_password']."<br>";
echo "name:".$row['user_city']."<br>";
}

Добрый день!
Выводить из базы только на латынке, данные на кириллице в вопросительных знаках... Сравнение таблицы было cp1251_general_ci, поставил utf8_general_ci. Не помогло.

Спустя 7 часов, 9 минут, 11 секунд (29.12.2008 - 15:32) novice написал(а):
И ещё нужна помощь.
Знаю, накидал код очень криво т.к. знании мало и смотрю по подобным примерам как делать то или иное.
Как это сделать?:

В отдельном файле сделал ссылку
PHP
<a href="index.php?page=academy">Ученик (от 1-го до 5-го уровня) - оплата  1 монета в день</a><br />

Когда на неё щёлкаем отрабатывается другой файл, который должен проверить его уровень, если от одного до пяти, то значит записываем ему в базу что он "ученик".
PHP
$query ="SELECT lvl FROM `shinobi_warstat` WHERE 'id'='{$_SESSION['user_id']}'";
$result mysql_query($query);
$row=mysql_fetch_array($result);
while(
$row mysql_fetch_array($result))
if(
$row['lvl']==от 1 до пяти)
{
mysql_query("UPDATE shinobi_warstat SET job=академик WHERE 'id'='{$_SESSION['user_id']}'");
}

Потом после того как занесли ему данные, нужно автоматом что бы раз в сутки обновлялась база, т.е проверялось если работник "академик" и время полночь 00:00:00 то добавляему ему одну монету, если работник "рабочии" то добавляем ему 3 монеты
PHP
$query ="SELECT job FROM `shinobi_warstat` WHERE 'id'='{$_SESSION['user_id']}'";
$result mysql_query($query);
$row=mysql_fetch_array($result);
while(
$row mysql_fetch_array($result))

if (
$row['job']==академик)
if (
если время==00:00:00)
{
mysql_query("UPDATE shinobi_warstat SET money=money+1 WHERE  'id'='{$_SESSION['user_id']}'");
}
if (
$row['job']==рабочии)
if (
если время==00:00:00)
{
mysql_query("UPDATE shinobi_warstat SET money=money+3 WHERE  'id'='{$_SESSION['user_id']}'");
}

Спустя 12 часов, 44 минуты, 37 секунд (30.12.2008 - 04:17) kirik написал(а):
PHP
if($row['lvl']==от 1 до пяти)

будет
PHP
if($row['lvl'] >= && $row['lvl'] <=5)



PHP
if (date('G'time())==0)
{
     if (
$row['job']=='академик')
     {
          
mysql_query("UPDATE shinobi_warstat SET money=money+1 WHERE  'id'='{$_SESSION['user_id']}'");
     }
     elseif(
$row['job']=='рабочии')
     {
          
mysql_query("UPDATE shinobi_warstat SET money=money+3 WHERE  'id'='{$_SESSION['user_id']}'");
      }
}

как-то так, и запускаем по крону

Спустя 40 минут, 38 секунд (30.12.2008 - 04:57) FatCat написал(а):
Цитата (kirik @ 30.12.2008 - 04:17)
и запускаем по крону

Если ресурс достаточно посещаемый, предпочитаю через таски делать.
В коде страницы ставится однопиксельный имидж с адресом на пхп-сценарий таска.
Таск проверяет время прошлого срабатывания, и ели интервал достаточный - срабатывает вновь.

Если же действие связано с самой страницей, можно напрямую в коде страницы таск сделать.
Например, так сделал кеширование морды форума: информация сбрасывается в файл, содержащий в своем имени юниксштамп времени создания. При последующих обращениях к морде, время считывается из имени файла и сверяется с текущим. Если интервал меньше 15 минут - информация черпается из кеша; если больше - кешфайл удаляется и инфа берется из базы, из неесоздается новый кешфайл.

Для актуализации данных сделано удаление кешфайла при каждом залогинивании юзера и при каждом входе-выходе юзера в чат.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.