Нужна помощь Помогите составить правильно запрос к бд

  • Автор темы StalkerNSK
  • Дата начала
StalkerNSK
Участник
Сообщения
102
Реакции
18
Итак, имеется в наличии БД "tb_history" и поля "id,user,date,amount,method,status". Запрос к базе данных вот такой: <tr><td class="left" width="50%">Выплачено за 24 часа</td><td class="left"><?$r=mysql_fetch_assoc(mysql_query("SELECT sum(amount) as summa FROM tb_history ")); echo round($r["summa"],2);?> руб.</td></tr>
Подскажите, что нужно исправить, чтобы считал за 24 часа, а не выплаты за все время.
id-(порядковый номер);
user-(id пользователя);
date-(22-07-2016);
amount-(сумма);
method-(WebMoney);
status - (Выплата сделана)
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
PHP:
$dt = time() - 60*60*24; # где 24 - это 24 часа = 1 сутки
#запрос к базе
"SELECT sum(amount) as summa FROM tb_history  WHERE date > $dt"
 
StalkerNSK
Участник
Сообщения
102
Реакции
18
Покажи как это выглядит в коде, у меня выходит ноль, а выплаты сегодня были.
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
StalkerNSK написал(а):
Покажи как это выглядит в коде, у меня выходит ноль, а выплаты сегодня были.
Прикрепи сюда файл свой, если так не понимаешь.
И какой тип у поля date ?
 
StalkerNSK
Участник
Сообщения
102
Реакции
18
date-(22-07-2016);
а вот и сам
<?include('header.php');?>
<div class=b1 style="padding: 5px;"><span id=wtl></span><span id=wt></span><span id=wtr></span><span id=wl></span><span id=wr></span><span id=wbl></span><span id=wb></span><span id=wbr></span>
<h5>Полная статистика сайта</h5>
<center>
<SCRIPT language=JavaScript>
firstDay = new Date('May 27, 2016');
nowDay = new Date();
daysQty = (nowDay.getTime() - firstDay.getTime()) / (1000*60*60*24);
document.write('Проекту пошел ' + Math.round(daysQty) + '-й день.');
</SCRIPT>
<table class="tables" border="0" cellpadding="0" cellspacing="1" width="100%">
<thead><tr><th align="center" nowrap="nowrap" width="50%">Параметр</th><th align="center" nowrap="nowrap" width="50%" >Значение</th></tr></thead>
<tbody>
<tr><td colspan="2" align="center" style="background: #ffffdd; border-left: 1px solid #ddd; color: #CF580A;">Общая нформация о проекте</td></tr>
<tr><td class="left" width="50%">Название проекта</td><td class="left"><?echo mysql_result(mysql_query("SELECT sitename FROM tb_site WHERE id='1'"),0,0);?></td></tr>
<tr><td class="left" width="50%">Открытие проекта</td><td class="left"><?echo mysql_result(mysql_query("SELECT startdate FROM tb_site WHERE id='1'"),0,0);?></td></tr>
<tr><td class="left" width="50%">Всего пользователей</td><td class="left"><?echo mysql_num_rows(mysql_query("SELECT id FROM tb_users"))+115;?></td></tr>
<tr><td class="left" width="50%">Новых за 24 часа</font></td><td class="left"><?echo mysql_num_rows(mysql_query("SELECT id FROM tb_users WHERE joindate='".date("d.m.Y")."'"))+5;?><a href="register_today.php"></a></td></tr>
<tr><td colspan="2" align="center" style="background: #ffffdd; border-left: 1px solid #ddd; color: #CF580A;">Заработок на проекте</td></tr>
<tr><td class="left" width="50%">Серфинг</td><td class="left">от <?echo mysql_result(mysql_query("SELECT 20sec FROM sfb_sho WHERE id='1'"),0,0);?> до от <?echo mysql_result(mysql_query("SELECT 60sec FROM sfb_sho WHERE id='1'"),0,0);?></td></tr>
<tr><td class="left" width="50%">Задания</td><td class="left">от <?echo mysql_result(mysql_query("SELECT price FROM tb_config WHERE item='mintask'"),0,0);?></td></tr>
<tr><td class="left" width="50%">Письма</td><td class="left">от <?echo mysql_result(mysql_query("SELECT price FROM tb_config WHERE item='mpay'"),0);?></td></tr>
<?
$res = mysql_query("SELECT COUNT(*) FROM tb_ads WHERE paused=0 and balance>payforad and (timer='0' or timer='1' or timer='2' or timer='3' or timer='4' or timer='5' or timer='6' or timer='7') ");
$row = mysql_fetch_row($res);
$serfall = $row['0']; // всего сёрфинга
?>
<tr><td colspan="2" align="center" style="background: #ffffdd; border-left: 1px solid #ddd; color: #CF580A;">Доступно для заработка</td></tr>
<tr><td class="left" width="50%">Доступно серфинга</td><td class="left"><? echo $row['0'];?> - ссылок</td></tr>
<?
$res = mysql_query("SELECT COUNT(*) FROM seo_paymails WHERE paused=0 and balance>0.50 ");
$row = mysql_fetch_row($res);
$mailall = $row['0']; // всего писем
?>
<tr><td class="left" width="50%">Доступно писем</td><td class="left"><? echo $row['0'];?> - ссылок</td></tr>
<?
$res = mysql_query("SELECT COUNT(*) FROM tb_task_w WHERE status=1 and balans>0.20 ");
$row = mysql_fetch_row($res);
$taskall = $row['0']; // всего заданий
?>
<tr><td class="left" width="50%">Доступно заданий</td><td class="left"><? echo $row['0'];?> - шт.</td></tr>
<?
$sql="select sum(money) from tb_users";
$pes=mysql_query($sql);
$deneg=mysql_result($pes,0,0);
$denegna=round($deneg,2);
?>
<tr><td class="left" width="50%">На балансах у пользователей</td><td class="left"><? echo $denegna;?> Руб.</td></tr>
<tr><td colspan="2" align="center" style="background: #ffffdd; border-left: 1px solid #ddd; color: #CF580A;">Доход от рефералов 1 уровня</td></tr>
<tr><td class="left" width="50%">Серфинг</td><td class="left">от 5% до 50%</td></tr>
<tr><td class="left" width="50%">Задания</td><td class="left">от 1% до 3%</td></tr>
<tr><td class="left" width="50%">Письма</td><td class="left">от 5% до 50%</td></tr>
<tr><td colspan="2" align="center" style="background: #ffffdd; border-left: 1px solid #ddd; color: #CF580A;">Доход от рефералов 2 уровня</td></tr>
<tr><td class="left" width="50%">Серфинг</td><td class="left">от 3% до 4%</td></tr>
<tr><td class="left" width="50%">Задания</td><td class="left">от 3% до 4%</td></tr>
<tr><td class="left" width="50%">Письма</td><td class="left">от 3% до 4%</td></tr>
<tr><td colspan="2" align="center" style="background: #ffffdd; border-left: 1px solid #ddd; color: #CF580A;">Выплаты на проекте</td></tr>
<tr><td class="left" width="50%">Валюта для выплат</td><td class="left">RUB</td></tr>
<tr><td class="left" width="50%">Платежная система</td><td class="left"> WebMoney </td></tr>
<tr><td class="left" width="50%">Авто-выплаты</td><td class="left"><?$xx=mysql_result(mysql_query("SELECT x2 FROM tb_site WHERE id='1'"),0,0); if($xx==0){echo "Нет";}else{echo "Да";}?></td></tr>
<tr><td class="left" width="50%">Минимум к выплате</td><td class="left"><?echo mysql_result(mysql_query("SELECT price FROM tb_config WHERE item='payment'"),0,0);?> руб.</td></tr>
<tr><td class="left" width="50%">Комиссия сайта</td><td class="left">Нет</td></tr>
<tr><td class="left" width="50%">Выплачено за 24 часа</td><td class="left"><?$dt = time() - 60*60*24;$r=mysql_fetch_assoc(mysql_query("SELECT sum(amount) as summa FROM tb_history WHERE date > $dt")); echo round($r["summa"],2);?> руб.</td></tr>
<tr><td class="left" width="50%">Всего выплачено</td><td class="left"><?$r=mysql_fetch_assoc(mysql_query("SELECT sum(amount) as summa FROM tb_history ")); echo round($r["summa"],2)+754;?> руб.</td></tr>
<tr><td class="left" width="50%">Количество выплат</td><td class="left"><?echo mysql_num_rows(mysql_query("SELECT id FROM tb_history"))+375;?></td></tr>
<tr><td colspan="2" align="center" style="background: #ffffdd; border-left: 1px solid #ddd; color: #CF580A;">Реклама на проекте</td></tr>
<tr><td class="left" width="50%">Авто-размещение рекламы</td><td class="left">Да</td></tr>
<tr><td class="left" width="50%">Оплата рекламы</td><td class="left">WebMoney, RoboKassa</td></tr>
</tbody></table>
</center>
</div>
<? include('footer.php'); ?>
я вверху писал.
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
По коду все верно, нужно смотреть в базе тип поля date. Потом исходя из этого делать выборку по времени.
 
StalkerNSK
Участник
Сообщения
102
Реакции
18
date-(22-07-2016);
Может как то ее по другому записывать в базу, не в формате "d-m-Y"
 
StalkerNSK
Участник
Сообщения
102
Реакции
18
Проблема решилась, код выглядит так: <tr><td class="left" width="50%">Выплачено за 24 часа</td><td class="left"><?$r=mysql_fetch_assoc(mysql_query("SELECT sum(amount) as summa FROM tb_history WHERE date='".date("d-m-Y")."'")); echo round($r["summa"],2);?> руб.</td></tr>
Тему можно закрыть.
 
nikitin2016
Участник
Сообщения
228
Реакции
12
StalkerNSK написал(а):
date-(22-07-2016);
Может как то ее по другому записывать в базу, не в формате "d-m-Y"
"d-m-Y" буквы меняешь с больших на мелкие и наоборот и дата немного меняется допустим месяц можно прописать как словом так и числом с датами дней и годом тоже самое , как пример : "D-M-y" , я себе такое реализовал - прикольно получилось !
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
  • #10
StalkerNSK написал(а):
Проблема решилась, код выглядит так: <tr><td class="left" width="50%">Выплачено за 24 часа</td><td class="left"><?$r=mysql_fetch_assoc(mysql_query("SELECT sum(amount) as summa FROM tb_history WHERE date='".date("d-m-Y")."'")); echo round($r["summa"],2);?> руб.</td></tr>
Тему можно закрыть.
Отлично!

Я так и предполагал, что поле в базе имеет тип Timestamp. Ну теперь и вы будите знать.

Но в запросе выводите где время равно сейчас. Вам нужно приплюсовать 24 часа, тогда будет за сутки. Timestamp это UNIX формат.
 
StalkerNSK
Участник
Сообщения
102
Реакции
18
  • #11
вчера сутки закончились, сумма стала ровна нулю, это после 12 ночи. А не сочтите за наглость посмотреть
<? include('checkcookie.php'); ?>
<h3>Запросы на выплату</h3>
<br>

<?

if(isset($_POST["user"]))
{
$useru=$_POST["user"];
$money=$_POST["money"];
$delwaitid=$_POST["id"];
mysql_query("UPDATE tb_users SET money=money+'$money' WHERE id='$useru'");
mysql_query("DELETE FROM tb_payme WHERE id='$delwaitid'");
echo "<b><font color=green>Средства возвращены в аккаунт пользователю $useru</font></b>";
}
if (isset($_GET["id"]))
{

$id=$_GET["id"];
$option=$_GET["option"];

if ($option=="paid")
{

$usr=$_POST["usr"];

$tablae = mysql_query("SELECT * FROM tb_users where id='$usr'");
$registroe = mysql_fetch_array($tablae);

$money=$_POST["money"];

$paid=$registroe["paid"];
$paid=$paid+$money;

$query = "UPDATE tb_users SET paid='$paid' where id='$usr'";
mysql_query($query) or die(mysql_error()); $nowtime=time();
$title="Выплата WebMoney на сумму $money рублей пользователю ID: $usr" ;
mysql_query("InSERT InTO tb_allhistory (idus,data,doing,title) values ('$registroe[id]','$nowtime','5','$title')");

$eltiempo=time();
$lafecha=date("d-m-Y",$eltiempo);

$query = "INSERT INTO tb_history (user, date, amount, method, status) VALUES('$usr','$lafecha','$money','WebMoney','Выплата сделана')";
mysql_query($query) or die(mysql_error());

$queryz = "DELETE FROM tb_payme WHERE id='$id'";
mysql_query($queryz) or die(mysql_error());

echo "<font color=\"red\"><b>Готово</b></font><br><br>";

}

if ($option=="del")
{
$queryz = "DELETE FROM tb_payme WHERE id='$id'";
mysql_query($queryz) or die(mysql_error());

echo "<font color=\"red\"><b>Удалено</b></font><br><br>";
}

}

?>

После оплаты отметить оплачено.
<br><br>
<table class="adn">
<tr class="lineb">
<td width=50 align=center>№</td>
<td width=200 align=center>Имя</td>
<td align=center>WMR</td>
<td align=center>LP</td>
<td width=100 align=center>Объем оплаты</td>
<td align=center>Ip</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>

<?
$res=mysql_query("select sitename, comment from tb_site where id='1'");
$res=mysql_fetch_array($res);
$sitename=$res["sitename"];
$comment=$res["comment"];
$comment=str_ireplace(":sitename:",$sitename,$comment);

$tabla = mysql_query("SELECT * FROM tb_payme ORDER BY id ASC");
while ($registro = mysql_fetch_array($tabla)) {

echo "
<tr class='liney ell'>
<td width=50 align=center>". $registro["id"] ."</td>
<td width=200 align=center>". $registro["username"] ."</td>
<td align=center>". $registro["pemail"] ."</td>
<td align=center>". $registro["liqpay"] ."</td>
<td width=100 align=center>". $registro["money"] ."</td>
<td align=center>". $registro["ip"] ."</td>";
$text=str_ireplace(":username:",$registro["username"],$comment);


?>
<td><a href='wmk:payto?Purse=<?= $registro["pemail"] ?>&Amount=<?= $registro["money"] ?>&Desc=<?=$text ?>&BringToFront=Y'><b>Оплатить Клики&nbsp;</b></a></td>
<td>
<form method="post" action="adminmain.php?p=reqpay&id=<?= $registro["id"] ?>&option=paid">
<input type="hidden" name="money" value="<?= $registro["money"] ?>">
<input type="hidden" name="usr" value="<?= $registro["username"] ?>">
<input type="submit" value="Оплачено" class="button">
</form>
</td>
<td>
<form method="post" action="adminmain.php?p=reqpay&id=<?= $registro["id"] ?>&option=del">
<input type="submit" value="Удалить" class="button">
</form>
</td>
<td>
<form action="" method="POST">
<input type="hidden" name="user" value="<?=$registro["username"]; ?>">
<input type="hidden" name="money" value="<?=$registro["money"]; ?>">
<input type="hidden" name="id" value="<?=$registro["id"]; ?>">
<input type="submit" value="Вернуть средства"></form>
</td>
</tr>

<?

}

?>
</table>
можно вылечить ?

Вот эту строчку $title="Выплата WebMoney на сумму $money рублей пользователю ID: $usr" ; вместо ID пользователя нужен его логин
в системе.
Пробовал вот так Выплата WebMoney на сумму $money рублей пользователю - $useru;
получается вот так Выплата WebMoney на сумму $money рублей пользователю -
 
Сверху