Имеется массив:
$result = mysql_query ("SELECT date FROM data ORDER by date DESC ") or die (mysql_error());Можно как ни будь его ограничить, скажем до 14 элементов??
$row = mysql_fetch_assoc($result);
$json_date = array();
do{
array_push($json_date, $row['date']);
}
while($row = mysql_fetch_assoc($result));
$date = array_unique($json_date);
$date = array_values($date);
Спасибо.
P/S - Ограничить на уровне Mysql(Limit) не вариант.
Спустя 10 минут, 20 секунд (4.03.2011 - 14:19) two написал(а):
santaros
for($i = 0; $i < 14; $i++)
{
array_push($json_date, $row['date']);
}
Спустя 1 минута, 23 секунды (4.03.2011 - 14:21) twin написал(а):
Цитата |
P/S - Ограничить на уровне Mysql(Limit) не вариант. |
Почему?
Спустя 3 минуты, 2 секунды (4.03.2011 - 14:24) santaros написал(а):
Цитата (two @ 4.03.2011 - 11:19) |
santaros for($i = 0; $i < 14; $i++){ array_push($json_date, $row['date']);} |
Не работает почему то.
twin
Дело в том что я после SQL запроса режу повторяющиеся строки..
array_unique
array_values
И получается что если существуют повторяющиеся строки то элементов становится меньше .
Спустя 9 минут, 14 секунд (4.03.2011 - 14:33) two написал(а):
santaros
Вот так правильно:
Вот так правильно:
$result = mysql_query("SELECT `date` FROM `data` ORDER by `date` DESC") or die (mysql_error());
$json_date = array();
$i = 0;
while($row = mysql_fetch_assoc($result)){
$i++;
array_push($json_date, $row['date']);
if ($i >= 14)
break;
}
print_r($json_date);
Спустя 18 минут, 16 секунд (4.03.2011 - 14:51) santaros написал(а):
Цитата (two @ 4.03.2011 - 11:33) |
santaros Вот так правильно: $result = mysql_query("SELECT `date` FROM `data` ORDER by `date` DESC") or die (mysql_error()); |
Работает. Но так как я делаю ещё и обрезку повторяющихся значений:
$json_date = array();
$i = 0;
while($row = mysql_fetch_assoc($result)){
array_push($json_date, $row['date']);
$i++;
$date = array_unique($json_date);
$date = array_values($date);
if ($i >= 14)
break;
}
лимит значений немного сбивается.... :(
Подскажите как ограничить массив с учётом array_unique и array_values
Спустя 9 минут, 55 секунд (4.03.2011 - 15:01) linker написал(а):
SELECT DISTINCT(`date`) FROM `data` ORDER BY `date` DESC LIMIT 14
Спустя 8 минут, 24 секунды (4.03.2011 - 15:09) santaros написал(а):
На уровне Mysql мне не нужно этого делать.
Потому что, это скрипт статистики новостного сайта.
Я делаю SQL запрос и вывожу значения из таблицы новостей, по полю даты. Затем делаю массив этих значений.
И делаю ещё один массив из того, сколько в эту дату было добавленно новостей.
Мне просто нужно обрезать повторяющиеся значения и затем уже лимитировать их....
Потому что, это скрипт статистики новостного сайта.
Я делаю SQL запрос и вывожу значения из таблицы новостей, по полю даты. Затем делаю массив этих значений.
И делаю ещё один массив из того, сколько в эту дату было добавленно новостей.
Мне просто нужно обрезать повторяющиеся значения и затем уже лимитировать их....
Спустя 1 час, 24 минуты, 50 секунд (4.03.2011 - 16:34) Dron19 написал(а):
$json_date = array();
do{
array_push($json_date, $row['date']);
}
while($row = mysql_fetch_assoc($result));
$date = array_unique($json_date);
Чисто лишняя работа! Зачем копировать массив? Хотя бы уже удалил бы старый и очистил дескриптор.
А вместо array_unique, в запросе мог бы поставить DISTINCT