Здравствуйте! я только учусь, если что строго не судите.. =) такого рода проблема:
$sqlQuery2="SELECT add_time FROM ".DATA_TABLE."12";
$result2 = mysql_query($sqlQuery2);
while($row_time= mysql_fetch_array($result2)){
$per[]=$row_time;
$pers=$per[0];
$smarty->assign("c",$pers);
}
$pers=$per[0] - В таблице 8 сообщений, в данном случае для примера я хочу вытащить именно первый элемент и сделать это не с помощью запроса. Я уже до этого присваивал переменной какое либо значение из массива таким образом - всё работало и выводилось на экран именно то что нужно, может при работе со Smarty есть какие то ньюнсы? подскажите плииз.
если написать просто
$per[]=$row_time;
$smarty->assign("c",$per);
выводятся все даты сообщений, ошибки в запросе значит нет, что то именно с кодом.
2
Вывод данных из БД
Автор adelg, 03 июня 2011 14:18
Сообщений в теме: 6
#1
Отправлено 03 Июнь 2011 - 14:18
#2
Отправлено 03 Июнь 2011 - 15:13
Во-первых, приведите полный код, вместе с шаблоном смарти. Во-вторых, Вы не написали что именно выводится у Вас сейчас - ошибка или просто не тот результат что Вы ожидаете.
В-третьих, даже без описания задачи уже видно кучу логических ошибок в Вашем коде.
В-третьих, даже без описания задачи уже видно кучу логических ошибок в Вашем коде.
#3
Отправлено 03 Июнь 2011 - 16:56
В Smarty пишу
{foreach from=$c item=item2}
{$item2.add_time}
{/foreach}
Выводит 2 2 2 2 2 2 2 2
Если поменять на {$c}
выводит Array
Хочу чтобы вывелась 1ая дата.
собственно, мне нужно сравнить 2 даты, одна будет вводится пользователем и сравниваться со второй, которая в БД, для этого нужно перевести оба числа через strtotime, а для этого нужно выдернуть все даты из БД с сообщениями, и каждую перевести в Unix для сравнения с введенной пользователем в форме.
Может есть разумнее предложения?
{foreach from=$c item=item2}
{$item2.add_time}
{/foreach}
Выводит 2 2 2 2 2 2 2 2
Если поменять на {$c}
выводит Array
Хочу чтобы вывелась 1ая дата.
собственно, мне нужно сравнить 2 даты, одна будет вводится пользователем и сравниваться со второй, которая в БД, для этого нужно перевести оба числа через strtotime, а для этого нужно выдернуть все даты из БД с сообщениями, и каждую перевести в Unix для сравнения с введенной пользователем в форме.
Может есть разумнее предложения?
#4
Отправлено 03 Июнь 2011 - 17:16
Вам все сообщения нужны или какое-то конкретное - последнее например, или с определенной датой? Зачем все сообщения в массив загонять? - начнем с этого.
#5
Отправлено 03 Июнь 2011 - 17:28
Полная задача состоит в составлении списка пользователей, и количества сообщений которые они отправили за определенный период. С выводом пользователей и общим количеством их сообщений я разобрался, но как сравнить дату(период) которую пользователь ввел в форму и дату хранящуюся в БД? В голову лишь пришло вытащить все даты из БД, поэтому их приходится засунуть в массив, а как каждую из них нужно сравнить с введенной в форме, не пойму.
#6
Отправлено 06 Июнь 2011 - 08:53
Чтобы выполнить данную задачу достаточно одного запроса к БД, с группировкой по user_id и фильтром по периоду. Затем уже загоняете результат в массив и выводите. А вот чтобы привести дату, введенную пользователем, к ввиду, в котором она хранится в базе, удобно воспользоваться нашей функцией form_eng_time:
$date1 = form_eng_time($_REQUEST['date1']);
Соответственно полученную дату используете в условии запроса. В самом коде сравнивать даты необходимости нет.
$date1 = form_eng_time($_REQUEST['date1']);
Соответственно полученную дату используете в условии запроса. В самом коде сравнивать даты необходимости нет.
#7
Отправлено 07 Июнь 2011 - 18:00
Большое спасибо!
Количество пользователей, читающих эту тему: 4
0 пользователей, 4 гостей, 0 анонимных