Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 17:25   #1
Godod
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 16
По умолчанию Двумерный массив с выводом информации

Здравствуйте. Есть двумерный массив и нужно сделать по строковый вывод картинок. К сожалению выводится не верно. Вот сам код:
PHP код:
<table border="0" cellpadding="0" cellspacing="1" width=750>
<?php
include("/v1/db.php");
// // Формируем хеш для генерации отчёта 
$SQ "SELECT * FROM report INNER JOIN user ON (user.user_id = report.user_id)"
$RQ mysql_query($SQ); if (!$RQ) { exit; } 
$finalHash = array();
while (
$RR mysql_fetch_assoc($RQ)){
  
$user_id $RR["user_id"];
  
$user_name $RR["user_name"];
  
$report_add_date $RR["report_add_time"];
  
$report_week_begin $RR["report_week_begin"];
  
$users[$user_id] = htmlspecialchars($user_name);
    if (
$report_add_date-$report_week_begin==1) { 
        
// рисуем галочку 
        // - на той неделе когда нарисовали отчёт 
        //$finalHash[$user_id][$report_add_date] = "v"; 
        // - на той неделе когда начали выполнять работу 
        
$finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p.gif"></img></td>'
    } elseif (
$report_add_date-$report_week_begin==2) { 
        
// соответственно: 
        // - на той неделе когда нарисовали отчёт 
        //$finalHash[$user_id][$report_add_date] = "vv"; 
        // - на той неделе когда начали выполнять работу 
        
$finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p2.gif"></img></td>'
    }
    if (
$report_add_date-$report_week_begin==3) { 
        
// соответственно: 
        // - на той неделе когда нарисовали отчёт 
        //$finalHash[$user_id][$report_add_date] = "vv"; 
        // - на той неделе когда начали выполнять работу 
        
$finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p3.gif"></img></td>'
    }
}
mysql_free_result($RQ);
// Рисуем итоговый отчёт! 
// шапка для недель
echo '<tr><td>Name</td>';  
for(
$current_week 40$current_week <= 52$current_week++) {   
    echo 
'<td>'.$current_week.'</td>'
}  

foreach(
$users as $user_name)  {  
    echo 
'<tr>';  
    echo 
'<td><a href="candidate_view.html">'.$user_name.'</a>'.'</td>';   
    for(
$current_week 40$current_week <= 52$current_week++) {      
                echo 
'<td>'.$finalHash[$user_id][$current_week].'</td>';    
    }echo 
'</tr>';  
}
?>
</table>
Выводится как на втором снимке. нужно чтобы выводилось как на первом снимке. Как этого добиться?
Заранее спасибо.
Изображения
Тип файла: jpg Снимок1.JPG (31.1 Кб, 82 просмотров)
Тип файла: jpg Снимок.JPG (14.8 Кб, 77 просмотров)

Последний раз редактировалось Godod; 15.11.2011 в 18:11.
Godod вне форума Ответить с цитированием
Старый 15.11.2011, 19:30   #2
Godod
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 16
По умолчанию

В общем я уже разобрался. Вот рабочий код:
PHP код:
<table border="0" cellpadding="0" cellspacing="1" width=750>
<?php
include("/v1/db.php");
// шапка для недель
echo '<tr><td>Name</td>';  
for(
$current_week 40$current_week <= 52$current_week++) {   
    echo 
'<td>'.$current_week.'</td>'
}  

// Формируем хеш для генерации отчёта 
$SQ "SELECT * FROM report INNER JOIN user ON (user.user_id = report.user_id)"
$RQ mysql_query($SQ); if (!$RQ) { exit; } 
$finalHash = array();
while (
$RR mysql_fetch_assoc($RQ)){
  
$user_id $RR["user_id"];
  
$user_name $RR["user_name"];
  
$report_add_date $RR["report_add_time"];
  
$report_week_begin $RR["report_week_begin"];
  
$report_in_vacation $RR["report_in_vacation"];
      if(
$report_in_vacation == 1) {
        
$finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/v.gif"></img></td>';
    } else {
    if (
$report_add_date-$report_week_begin==1) {  
        
$finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p.gif"></img></td>'
    } elseif (
$report_add_date-$report_week_begin==2) {  
        
$finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p2.gif"></img></td>'
    }
    if (
$report_add_date-$report_week_begin==3) {  
        
$finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/p3.gif"></img></td>'
    } elseif (
$report_add_date-$report_week_begin==$report_add_date) {
        
$finalHash[$user_id][$report_week_begin] = '<td><img src="/v1/images/x.gif"></img></td>';
    }
    }
    
// выводим таблицу
    
echo '<tr>';  
    echo 
'<td><a href="candidate_view.html">'.$user_name.'</a>'.'</td>';   
    for(
$current_week 41$current_week <= 52$current_week++) {      
                echo 
'<td>'.$finalHash[$user_id][$current_week].'</td>';
                }
    echo 
'</tr>';  
}
mysql_free_result($RQ);
?>
</table>
Теперь вопрос как сделать вывод галочек в зависимости от недель?
Godod вне форума Ответить с цитированием
Старый 16.11.2011, 14:11   #3
Godod
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 16
По умолчанию

проблема решена, закрывайте тему
Godod вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Двумерный массив. Mirel Паскаль, Turbo Pascal, PascalABC.NET 5 18.05.2009 22:59
ввод информации с клавиутуры в двумерный масив, запись информации с масива в файл x_omega_x Помощь студентам 1 29.12.2008 02:30
массив сохранение информации и манипуляции oblom Общие вопросы C/C++ 19 04.02.2008 02:28