Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Повторяющиеся данные в таблице и их пдсветка.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
lissa
Отправлено: 22 Октября, 2011 - 16:00:01
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Помогите, плиз! Сама никогда не смогу.
Есть база данных, результат вывода помещается в таблицу.
При выводе данные в таблице могут повторяться. Т.е. один ID может повторяться 2 и более раз. Таких id в таблице может быть несколько.
Нужен результат - подсветка ячеек таблицы разными цветами при повторяющихся id.
При совпадении один id подсвечивается одним цветом, другое совпадение другим, и т.д.
 
 Top
LIME
Отправлено: 22 Октября, 2011 - 16:08:00
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




lissa дайте код формирования таблицы
изменить будет проще
и вам понятней
 
 Top
lissa
Отправлено: 22 Октября, 2011 - 16:13:04
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Так, главное понять из какого файла код давать.

Возможно этот:

PHP:
скопировать код в буфер обмена
  1. function DbTriad($dogVO, $level, $generations, $childText) {
  2.         global $THUMBNAIL_WIDTH;
  3.         global $dogDAO;
  4.         # do the individual.
  5.  
  6.         if ($level == $generations) {
  7.  
  8.                 echo "<TD >";
  9.  
  10.         } else {
  11.  
  12.                 echo "<TD ROWSPAN=" . pow(2,($generations - $level));
  13.  
  14.                 echo " >";
  15.  
  16.         }
  17.  
  18.         if (($dogVO != -1) && (!empty($dogVO ))) {
  19.  
  20.                 if (empty($dogVO)) {
  21.  
  22.                         echo "Unknown Individual";
  23.  
  24.                 } else {
  25.  
  26.                         $name = $dogVO->name;
  27.  
  28.                         $sireId = $dogVO->sire->id;
  29.  
  30.                         $damId = $dogVO->dam->id;
  31.  
  32.                         $landofbirth = $dogVO->landofbirth;
  33.  
  34.                         $yearofbirth = $dogVO->yearofbirth;
  35.  
  36.                         $color = $dogVO->color;
  37.  
  38.                         $title = $dogVO->title;        
  39.  
  40.                         $photo = $dogVO->photo->thumb_ref;                             
  41.                         if (empty($photo))
  42.                                 $photo = $dogVO->photo->reference;
  43.  
  44.                         ### Highlight title w/ red font
  45.  
  46.                         if (!empty($title)) {
  47.                                 echo "<label>";
  48.                                 echo "<font color=\"red\">$title</font><BR>";
  49.                                 echo "</label>";
  50.                         }
  51.  
  52.                         echo '<a href="'.$_SERVER['PHP_SELF'].'?id='.$dogVO->id.'">';                                  
  53.  
  54.                         if (!empty($photo)) {
  55.  
  56.                                 echo '<p><img SRC="'.$photo.'" width="'.$THUMBNAIL_WIDTH.'"></p>';
  57.  
  58.                         }                                                                              
  59.  
  60.                         echo "$name</a>";
  61.  
  62.                         echo "<label>";
  63.  
  64.                         //if (($level <= 3) && (!empty($color))) {
  65.  
  66.                         if (!empty($color)) {
  67.  
  68.                                 echo "<BR>$color ";            
  69.  
  70.                         }
  71.  
  72.                         if (!empty($landofbirth)) {
  73.  
  74.                                 echo "<BR>$landofbirth";               
  75.  
  76.                         }
  77.  
  78.                         if (!empty($yearofbirth)) {
  79.  
  80.                                 echo "<BR>$yearofbirth";               
  81.  
  82.                         }
  83.  
  84.                         echo "</label>";
  85.                 }
  86.  
  87.         } else {
  88.  
  89.                 echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  90.  
  91.                 if (!empty($childText) )               
  92.  
  93.                         echo '<a href="addDog.php?child='.$childText.'">Добавить</a>';
  94.  
  95.         }
  96.  
  97.         echo "</TD>";
  98.  
  99. # do the father.
  100.  
  101.         if ($level < $generations) {
  102.  
  103.                 if (!empty($dogVO))
  104.  
  105.                         $childText = "fatherOf_".$dogVO->id;
  106.  
  107.                 else
  108.  
  109.                         unset($childText);
  110.  
  111.                 $dogDAO = new DogDAO();
  112.                 if (empty($sireId))
  113.                         $father = null;
  114.                 else
  115.                         $father = $dogDAO->get($sireId);                       
  116.                 DbTriad($father, $level + 1, $generations, $childText);
  117.  
  118.         }
  119.  
  120. # do the mother.
  121.  
  122.         if ($level < $generations) {
  123.  
  124.                 if (!empty($dogVO))
  125.  
  126.                         $childText = "motherOf_".$dogVO->id;
  127.  
  128.                 else
  129.  
  130.                         unset($childText);
  131.                
  132.                 $dogDAO = new DogDAO();
  133.                 if (empty($damId))
  134.                         $mother = null;
  135.                 else
  136.                         $mother = $dogDAO->get($damId);                                        
  137.                 DbTriad($mother, $level + 1, $generations, $childText);
  138.  
  139.         }
  140.  
  141. # finish up.
  142.  
  143.         if ($level == $generations) {
  144.  
  145.                 echo "</TR><TR>";
  146.  
  147.         }
  148.  
  149.  
  150.  
  151. }
  152.  
  153.  
  154.  
  155.  
  156.  
  157. # begin table
  158.  
  159.         echo '<table id="pedigree" align="center" width="97%" border="0"><tr><th colspan='.$generations.'>Родословная</th></tr>';
  160.  
  161. # do tree.
  162.  
  163.         $dogDAO = new DogDAO();
  164.  
  165.         $dog = $dogDAO->get($currId);
  166.  
  167.         DbTriad ($dog, 1, $generations, null);
  168.  
  169. # end table
  170.  
  171.         echo "</td></tr></table>";
  172.  
  173.  ?>
 
 Top
caballero
Отправлено: 22 Октября, 2011 - 16:17:46
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




А цветов хватит если будет много совпадений?

самый простой сспособ - выбрать id которых больше 1

select id,count(id) as cnt from tablename group by id having cnt > 0
задать массив с красками а потом раскрашивать при выводе всей таблицы


или предварительно пройтись по всему массиву подсчитывая совпадения

сформировать массив с количесвами
$array_id[id] += 1
затем где больше 1 задать цвета

(Отредактировано автором: 22 Октября, 2011 - 16:20:48)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
lissa
Отправлено: 22 Октября, 2011 - 16:22:03
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




caballero

Еще-бы понять о чем Вы.. Я с PHP совсем не дружу...
Очень много совпадений быть не может, конечно. Не думаю, что более 50...
 
 Top
illy
Отправлено: 22 Октября, 2011 - 16:46:42
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




надо было весь код дать
PHP:
скопировать код в буфер обмена
  1. $k=array('ffffff','d00000','00c000','ffc000','d00000','00d0d0','c0f090','f000c0');
  2. $u=array();
  3. function DbTriad($dogVO, $level, $generations, $childText) {
  4. global $THUMBNAIL_WIDTH;
  5. global $dogDAO;
  6. # do the individual.
  7. $damId=$dogVO->dam->id;
  8. $c=0;
  9. for($i=0;$i!=sizeof($u);$i++){
  10. if($u[$i]==$damId){$c++;}
  11. }
  12. $u[]=$z[0];
  13.  
  14. if($level==$generations) {
  15. echo '<TD bgcolor=#'.$k[$c]'>';
  16. }
  17. else{
  18. echo '<TD bgcolor=#'.$k[$c].' ROWSPAN='.pow(2,($generations - $level));
  19. echo ' >';
  20. }
  21. if(($dogVO != -1) && (!empty($dogVO ))) {
  22. if(empty($dogVO)){
  23. echo "Unknown Individual";
  24. }
  25. else {
  26. $name = $dogVO->name;
  27. $sireId = $dogVO->sire->id;
  28. $damId = $dogVO->dam->id;
  29. $landofbirth = $dogVO->landofbirth;
  30. $yearofbirth = $dogVO->yearofbirth;
  31. $color = $dogVO->color;
  32. $title = $dogVO->title;
  33. $photo = $dogVO->photo->thumb_ref;
  34.  
  35. if (empty($photo))
  36. $photo = $dogVO->photo->reference;
  37. ### Highlight title w/ red font
  38. if (!empty($title)) {
  39. echo '<label><font color=red>'.$title.'</font><BR></label>';
  40. }
  41. echo '<a href="'.$_SERVER['PHP_SELF'].'?id='.$dogVO->id.'">';
  42. if(!empty($photo)){
  43. echo '<p><img SRC="'.$photo.'" width="'.$THUMBNAIL_WIDTH.'"></p>';
  44. }
  45. echo $name.'</a><label>';
  46. //if (($level <= 3) && (!empty($color))) {
  47. if(!empty($color)){
  48. echo '<BR>'.$color.' ';
  49. }
  50. if(!empty($landofbirth)) {
  51. echo "<BR>$landofbirth";
  52. }
  53. if (!empty($yearofbirth)) {
  54. echo "<BR>$yearofbirth";
  55. }
  56. echo "</label>";
  57. }
  58. }
  59. else {
  60. echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  61. if (!empty($childText) )
  62. echo '<a href="addDog.php?child='.$childText.'">Добавить</a>';
  63. }
  64. echo "</TD>";
  65. # do the father.
  66. if ($level < $generations) {
  67. if (!empty($dogVO))
  68. $childText = "fatherOf_".$dogVO->id;
  69. else
  70. unset($childText);
  71. $dogDAO = new DogDAO();
  72. if (empty($sireId))
  73. $father = null;
  74. else
  75. $father = $dogDAO->get($sireId);
  76. DbTriad($father, $level + 1, $generations, $childText);
  77. }
  78. # do the mother.
  79. if ($level < $generations) {
  80. if (!empty($dogVO))
  81. $childText = "motherOf_".$dogVO->id;
  82. else
  83. unset($childText);
  84. $dogDAO = new DogDAO();
  85. if (empty($damId))
  86. $mother = null;
  87. else
  88. $mother = $dogDAO->get($damId);
  89. DbTriad($mother, $level + 1, $generations, $childText);
  90. }
  91. # finish up.
  92. if ($level == $generations) {
  93. echo "</TR><TR>";
  94. }
  95. }
  96. # begin table
  97. echo '<table id="pedigree" align="center" width="97%" border="0"><tr><th colspan='.$generations.'>Родословная</th></tr>';
  98. # do tree.
  99. $dogDAO = new DogDAO();
  100. $dog = $dogDAO->get($currId);
  101. DbTriad ($dog, 1, $generations, null);
  102. # end table
  103. echo "</td></tr></table>";
  104. ?>


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $id=array(1,2,2,2,2,2,2,3,4,5,5,6);
  3. $k=array('000000','d00000','00c000','ffc000','d00000','00d0d0','c0f090','f000c0');
  4. $u=array();
  5. foreach($id as $z[0]){
  6. $c=0;
  7. for($i=0;$i!=sizeof($u);$i++){
  8. if($u[$i]==$z[0]){$c++;}
  9. }
  10. $u[]=$z[0];
  11. echo '<b><font color=#'.$k[$c].'>'.$z[0].'</font></b><br>';
  12. }
  13. ?>


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
caballero
Отправлено: 22 Октября, 2011 - 17:14:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




illy

а если id число величиной несколько тысяч?
в чем смысл $z[0]? почему не просто переменная
зачем там вообще два вложенных цикла?

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $idlist=array(1,2,2,2,2,2,2,3,4,5,5,6);
  3. $k=array('000000','d00000','00c000','ffc000','d00000','00d0d0','c0f090','f000c0');
  4. $u=array();
  5. $colors=array();
  6. foreach(idlist as $id){
  7.  
  8.     $u[$id] =  $u[$id] > 0 ? $u[$id]+1 : 1;
  9.     if($u[$id] > 1)
  10.     {
  11.         $colors[$id] = next($k);
  12.     }
  13.    
  14. }
  15.  
  16.  
  17. там  где  надо  выводить
  18.  
  19. <b><font color=#'.colors[$id].'>'.$id.'</font></b>
  20.  
  21.  
  22. ?>
  23.  


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Давит
Отправлено: 22 Октября, 2011 - 17:18:58
Post Id



Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2011  


Помог: 2 раз(а)




PHP:
скопировать код в буфер обмена
  1. function DbTriad($dogVO, $level, $generations, $childText) {
  2.         global $THUMBNAIL_WIDTH;
  3.         global $dogDAO;
  4.         # do the individual.
  5.  
  6.         if ($level == $generations) {
  7.  
  8.                 echo '<TD bgcolor="#'.substr(md5($dogVO->dam->id), 0, 6).'">';
  9.  
  10.  
  11.           ....
  12.           ....
  13.  

(Отредактировано автором: 22 Октября, 2011 - 17:19:22)

 
 Top
lissa
Отправлено: 22 Октября, 2011 - 17:24:22
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Спасибо всем за помощь. Попробую поэкспериментировать с предложенными вариантами, если пойму что к чему...

Есть правда более глобальный вопрос.
Может быть есть знатоки, кто, например, может посмотреть движок полностью и внести туда определенные правки и дополнения? Движок имеет некоторые проблемы, конечно в чуом разбираться наверное не так легко.

Ну и конечно, если кто-то готов на такое развлечение, то может быть стоит обсудить в личке? Сразу напишу, что финансов почти нет, но может быть есть варианты переделать все недорого?

База работающая, поэтому надо именно внести дополнения и изменения без потери уже имеющихся данных.
 
 Top
illy
Отправлено: 22 Октября, 2011 - 17:35:02
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




не то вставил Ха-ха
PHP:
скопировать код в буфер обмена
  1. $k=array('ffffff','d00000','00c000','ffc000','d00000','00d0d0','c0f090','f000c0');
  2. $u=array();
  3. function DbTriad($dogVO, $level, $generations, $childText) {
  4. global $THUMBNAIL_WIDTH;
  5. global $dogDAO;
  6. # do the individual.
  7. $damId=$dogVO->dam->id;
  8. $c=0;
  9. for($i=0;$i!=sizeof($u);$i++){
  10. if($u[$i]==$damId){$c++;}
  11. }
  12. $u[]=$damId;
  13.  
  14. if($level==$generations) {
  15. echo '<TD bgcolor=#'.$k[$c]'>';
  16. }
  17. else{
  18. echo '<TD bgcolor=#'.$k[$c].' ROWSPAN='.pow(2,($generations - $level));
  19. echo ' >';
  20. }


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $id=array(1,2,2,2,2,2,2,3,4,5,5,6);
  3. $k=array('000000','d00000','00c000','ffc000','d00000','00d0d0','c0f090','f000c0');
  4. $u=array();
  5. foreach($id as $z){
  6. $c=0;
  7. for($i=0;$i!=sizeof($u);$i++){
  8. if($u[$i]==$z){$c++;}
  9. }
  10. $u[]=$z;
  11. echo '<b><font color=#'.$k[$c].'>'.$z.'</font></b><br>';
  12. }
  13. ?>

(Отредактировано автором: 22 Октября, 2011 - 17:36:37)



-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
lissa
Отправлено: 22 Октября, 2011 - 18:06:42
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Эх, ничего не получается... Огорчение
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB