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]   

> Без описания
Godod
Отправлено: 15 Ноября, 2011 - 15:56:43
Post Id


Новичок


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


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




Здравствуйте. Есть двумерный массив и нужно сделать по строковый вывод картинок. К сожалению выводится не верно. Вот сам код:
PHP:
скопировать код в буфер обмена
  1. <table border="0" cellpadding="0" cellspacing="1" width=750>
  2. <?PHP
  3. include("/v1/db.php");
  4. // // Формируем хеш для генерации отчёта
  5. $SQ = "SELECT * FROM report INNER JOIN user ON (user.user_id = report.user_id)";
  6. $RQ = mysql_query($SQ); if (!$RQ) { exit; }
  7. $finalHash = array();
  8. while ($RR = mysql_fetch_assoc($RQ)){
  9.   $user_id = $RR["user_id"];
  10.   $user_name = $RR["user_name"];
  11.   $report_add_date = $RR["report_add_time"];
  12.   $report_week_begin = $RR["report_week_begin"];
  13.   $users[$user_id] = htmlspecialchars($user_name);
  14.     if ($report_add_date-$report_week_begin==1) {
  15.         // рисуем галочку
  16.         // - на той неделе когда нарисовали отчёт
  17.         //$finalHash[$user_id][$report_add_date] = "v";
  18.         // - на той неделе когда начали выполнять работу
  19.         $finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p.gif"></img></td>';
  20.     } elseif ($report_add_date-$report_week_begin==2) {
  21.         // соответственно:
  22.         // - на той неделе когда нарисовали отчёт
  23.         //$finalHash[$user_id][$report_add_date] = "vv";
  24.         // - на той неделе когда начали выполнять работу
  25.         $finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p2.gif"></img></td>';
  26.     }
  27.         if ($report_add_date-$report_week_begin==3) {
  28.         // соответственно:
  29.         // - на той неделе когда нарисовали отчёт
  30.         //$finalHash[$user_id][$report_add_date] = "vv";
  31.         // - на той неделе когда начали выполнять работу
  32.         $finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p3.gif"></img></td>';
  33.     }
  34. }
  35. // Рисуем итоговый отчёт!
  36. // шапка для недель
  37. echo '<tr><td>Name</td>';  
  38. for($current_week = 40; $current_week <= 52; $current_week++) {  
  39.     echo '<td>'.$current_week.'</td>';
  40. }  
  41.  
  42. foreach($users as $user_name)  {  
  43.     echo '<tr>';  
  44.     echo '<td><a href="candidate_view.html">'.$user_name.'</a>'.'</td>';  
  45.     for($current_week = 40; $current_week <= 52; $current_week++) {      
  46.                 echo '<td>'.$finalHash[$user_id][$current_week].'</td>';    
  47.     }echo '</tr>';  
  48. }  
  49. ?>
  50. </table>

Выводится как на первом снимке. Нужно чтобы в зависимости от недели и пользователя выводились определенные картинки. Как этого добиться?
Заранее спасибо.
(Добавление)
В общем я уже разобрался. Вот рабочий код:
PHP:
скопировать код в буфер обмена
  1. <table border="0" cellpadding="0" cellspacing="1" width=750>
  2. <?PHP
  3. include("/v1/db.php");
  4. // шапка для недель
  5. echo '<tr><td>Name</td>';  
  6. for($current_week = 40; $current_week <= 52; $current_week++) {  
  7.     echo '<td>'.$current_week.'</td>';
  8. }  
  9.  
  10. // Формируем хеш для генерации отчёта
  11. $SQ = "SELECT * FROM report INNER JOIN user ON (user.user_id = report.user_id)";
  12. $RQ = mysql_query($SQ); if (!$RQ) { exit; }
  13. $finalHash = array();
  14. while ($RR = mysql_fetch_assoc($RQ)){
  15.   $user_id = $RR["user_id"];
  16.   $user_name = $RR["user_name"];
  17.   $report_add_date = $RR["report_add_time"];
  18.   $report_week_begin = $RR["report_week_begin"];
  19.   $report_in_vacation = $RR["report_in_vacation"];
  20.         if($report_in_vacation == 1) {
  21.                 $finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/v.gif"></img></td>';
  22.         } else {
  23.     if ($report_add_date-$report_week_begin==1) {  
  24.         $finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p.gif"></img></td>';
  25.     } elseif ($report_add_date-$report_week_begin==2) {  
  26.         $finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p2.gif"></img></td>';
  27.     }
  28.         if ($report_add_date-$report_week_begin==3) {  
  29.         $finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p3.gif"></img></td>';
  30.     } elseif ($report_add_date-$report_week_begin==$report_add_date) {
  31.                 $finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/x.gif"></img></td>';
  32.         }
  33.         }
  34.         // выводим таблицу
  35.         echo '<tr>';  
  36.     echo '<td><a href="candidate_view.html">'.$user_name.'</a>'.'</td>';  
  37.     for($current_week = 41; $current_week <= 52; $current_week++) {      
  38.                 echo '<td>'.$finalHash[$user_id][$current_week].'</td>';
  39.                                 }
  40.         echo '</tr>';  
  41. }
  42. ?>
  43. </table>

Теперь вопрос как сделать вывод галочек в зависимости от недель?
Прикреплено изображение (Нажмите для увеличения)
Снимок.JPG

(Отредактировано автором: 15 Ноября, 2011 - 16:10:38)

 
 Top
Godod
Отправлено: 16 Ноября, 2011 - 12:10:46
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 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