Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не выводить одинаковые данные
 
 автор: kis-kis   (06.02.2009 в 12:16)   письмо автору
 
 

Подскажите как сделать, если $anons[id] будет равен следующему $anons[id], то вывод названия анонса был 1 раз.
Например -

Название анонса.
Время
время,

а не так

Название анонса
время
Название анонса
время


while($time_table = mysql_fetch_array($result_show))
{
$resultc_anons=mysql_query("SELECT * FROM `afisha` WHERE `id` = '$time_table[event_id]'") 
or die("Error:<b> ". mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);
$anons = mysql_fetch_array($resultc_anons);

echo $anons[event_title];
}


Заранее спасибо.

  Ответить  
 
 автор: freeneutron   (09.02.2009 в 07:59)   письмо автору
 
   для: kis-kis   (06.02.2009 в 12:16)
 

Используй php. MySQL для этого не годиться, он заточен под другое. Попробуй так.

while(...)
{
  ...
  $anonses[]=$anons;
}
for($i = 1; $i < count($anonses); $i++)
  echo ($anonses[$i]['id']!=$anonses[$i-1]['id']?$anonses[$i]['id']:"").": {$anonses[$i]['event_title']}\n";

  Ответить  
 
 автор: Trianon   (09.02.2009 в 10:16)   письмо автору
 
   для: freeneutron   (09.02.2009 в 07:59)
 

Все правильно.
Непонятно лишь, зачем помещать все данные в промежуточный массив?
Нужна-то лишь последняя строка. Даже меньше - единственная ячейка из последней строки.

  Ответить  
 
 автор: kis-kis   (09.02.2009 в 13:39)   письмо автору
 
   для: Trianon   (09.02.2009 в 10:16)
 

Не понял, что Вы имели ввиду?

  Ответить  
 
 автор: Trianon   (09.02.2009 в 14:30)   письмо автору
 
   для: kis-kis   (09.02.2009 в 13:39)
 

вот этот цикл
while(...)
$anonses[]=$anons;


57306

  Ответить  
 
 автор: kis-kis   (09.02.2009 в 14:42)   письмо автору
 
   для: Trianon   (09.02.2009 в 14:30)
 

Все равно не понял, что нужно сделать... (

  Ответить  
 
 автор: Trianon   (09.02.2009 в 14:59)   письмо автору
 
   для: kis-kis   (09.02.2009 в 14:42)
 

как freeneutron рассказал - поняли?
Делайте как поняли.

  Ответить  
 
 автор: kis-kis   (09.02.2009 в 15:09)   письмо автору
 
   для: Trianon   (09.02.2009 в 14:59)
 

Если правильно понял, то правильно работает только для первого случая, остальные данные выводятся все равно повторно...


while($time_table = mysql_fetch_array($result_show))
{
$resultc_anons=mysql_query("SELECT * FROM `afisha` WHERE `id` = '$time_table[event_id]'") 
or die("Error:<b> ". mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);
$anons = mysql_fetch_array($resultc_anons);
$anonses[]=$anons;
}
for($i = 1; $i < count($anonses); $i++)
echo ($anonses[$i]['id'] != $anonses[$i-1]['id']?$anonses[$i]['id']:"")." {$anonses[$i]['event_title']}<br>";

  Ответить  
 
 автор: kis-kis   (09.02.2009 в 15:24)   письмо автору
 
   для: Trianon   (09.02.2009 в 14:59)
 

А если

for($i = 1; $i < count($anonses); $i++)
echo ($anonses[$i]['id'] != $anonses[$i-1]['id']?$anonses[$i]['id']:"")." {$anonses[$i]['event_title']}<br>"; 

поместить в цикл, то все отлично работает. Правильно? И можно ли сделать вывод так:

$anonses[$i]['id'] != $anonses[$i-1]['id'] ? $title= "{$anonses[$i]['event_title']}" : $title= "";
echo $title;

  Ответить  
 
 автор: а-я   (09.02.2009 в 15:11)   письмо автору
 
   для: kis-kis   (06.02.2009 в 12:16)
 

что-то не понятно... в слепую все.

я бы так сделал:

<?
$_MS 
mysql_query('SELECT `name`, GROUP_CONCAT(DATE_FORMAT(`time`, "%H:%i")) AS `times` FROM `afisha` GROUP BY `id`');
?>
<? 
while(list($name,$times) = mysql_fetch_array($_MS)): ?>
 Название анонса: <?=$name?><br />
 Время: [<?=$times?>]<br /><br />
<? endwhile; ?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования