За последние 24 часа нас посетили 19170 программистов и 1610 роботов. Сейчас ищут 1114 программистов ...

Вывод нескольких запросов в html таблицу

Тема в разделе "MySQL", создана пользователем AloKvadro, 7 фев 2010.

  1. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Не надо делать ключ массива.

    Когда делаешь var_dump($arr);
    у тебя должно показываться нечто такого вида

    Код (Text):
    1. array( 'имя команды' => array('год турнира' => какие-то цифры),
    2. ...
    3.  'имя команды' => array('год турнира' => какие-то цифры))
    Только вместо имя команды будет конкретная команда.

    и выводить такой массив можно циклом
    PHP:
    1. <?php
    2. foreach($массив $ключ => $значение) {
    3.     echo $ключ; // тут будет выведено имя команды
    4.     echo $значение['2009sum'];
    5.     // и т.д.
    6. }
     
  2. AloKvadro

    AloKvadro Активный пользователь

    С нами с:
    7 фев 2010
    Сообщения:
    24
    Симпатии:
    0
    PHP:
    1. <?php
    2.                        
    3.   $result2 = mysql_query("SELECT komanda, (SELECT SUM(ochki) FROM kubki WHERE raiting.kubok=kubki.title AND godtyrnira='2009') as 2009sum, (SELECT SUM(ochki) FROM kubki WHERE raiting.kubok=kubki.title AND godtyrnira='2010') as 2010sum, SUM(ochki) as allsum FROM raiting,kubki GROUP by komanda,godtyrnira ORDER by allsum DESC",$db);
    4.  
    5.  
    6.   if (!$result2)
    7.   {
    8.   echo "<p><strong>Код ошибки:</strong></p>";
    9.   }
    10.  
    11.   if (mysql_num_rows($result2) > 0)
    12.  {
    13.  $arr = array();
    14.   while ($myrow = mysql_fetch_assoc($result2))
    15.   {
    16.  
    17.   $arr[$myrow["komanda"]][$myrow["godtyrnira"]] = $myrow["allsum"];
    18.   }
    19.  
    20.  foreach($arr as $komanda => $data2) {
    21.      echo $komanda."<br>";
    22.       echo $data2['allsum'];
    23.      
    24.  }
    25.  
    26.  
    27. }
    28.  
    29.  
    30.  
    31.    ?>
    Выводит только список команд, почему очки не выводит, я что-то разобраться не могу (
     
  3. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    var_dump($data2); внутри цикла
    И ты увидшь что ключа allsum там нет.
     
  4. AloKvadro

    AloKvadro Активный пользователь

    С нами с:
    7 фев 2010
    Сообщения:
    24
    Симпатии:
    0
    Скажите пожалуйста, а как сделать, чтобы выводило все как надо?
     
  5. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Вот твой же код из этого топика.
    Но с добавленным mysql_fetch_assoc (который ты забыл)

    PHP:
    1. <?php
    2.                        
    3.  $result = mysql_query("SELECT raiting.komanda, raiting.god, sum(ochki) as sum_ochki, kubki.godtyrnira
    4. FROM raiting AS r
    5. JOIN kubki AS k ON raiting.kubok = kubki.title
    6. group by raiting.komanda,kubki.godtyrnira",$db);
    7.  
    8.  $mydata = array();
    9. while($row = mysql_fetch_assoc($result))
    10.  {
    11.  $mydata[$row["komanda"]][$row["godtyrnira"]] = $row["sum_ochki"];
    12.  }
    13.  $n=0;
    14.  foreach($mydata as $komanda=>$data)
    15.  {
    16.  ?>
    17.  <tr>
    18.  <td><?php echo $n++;?></td>
    19.  <td><?php echo $komanda;?></td>
    20.  <td><?php echo $data["2009"];?></td>
    21.  <td><?php echo $data["2010"];?></td>
    22.  <td><?php echo $data["2011"];?></td>
    23.  <td><?php echo $data["2009"]+$data["2010"]+$data["2011"];?></td>
    24.  </tr>
    25.  <?php }?>
     
  6. AloKvadro

    AloKvadro Активный пользователь

    С нами с:
    7 фев 2010
    Сообщения:
    24
    Симпатии:
    0
    После небольшой правки кода получил:
    PHP:
    1.  <?php
    2.                          
    3.       $result = mysql_query("SELECT komanda,god, sum(ochki) as sum_ochki, godtyrnira
    4.      FROM raiting AS r
    5.      JOIN kubki AS k ON kubok = title
    6.     group by komanda,godtyrnira ORDER by sum_ochki DESC",$db);
    7.        if (!$result)
    8.    {
    9.     echo "<p><strong>Код ошибки:</strong></p>";
    10.     exit(mysql_error());
    11.     }
    12.      $mydata = array();
    13.     while($row = mysql_fetch_assoc($result))
    14.      {
    15.      $mydata[$row["komanda"]][$row["godtyrnira"]] = $row["sum_ochki"];
    16.      }
    17.    $n=1;
    18.    foreach($mydata as $komanda=>$data)
    19.      {
    20.      $data["2009"] = round($data["2009"],'2');
    21.      ?>
    22.      <tr>
    23.      <td width='50' align="center"><?php echo $n++;?></td>
    24.      <td width='70' align="center"><?php echo $komanda;?></td>
    25.      <td width='50' align="center"><?php echo $data["2009"];?></td>
    26.      <td width='50' align="center"><?php echo $data["2010"];?></td>
    27.      <td width='50' align="center"><?php echo $data["2011"];?></td>
    28.      <td width='50' align="center"><?php echo $data["2009"]+$data["2010"]+$data["2011"];?></td>
    29.      </tr>
    30.      <?php }?>
    И ОНО РАБОТАЕТ! УРА! :))

    Спасибо большое Вам, Simpliest, за Вашу помощь в этом нелегком деле! Я очень признателен вам! Вы настоящий специалист! Еще раз спасибо! Все супер! :)
     
  7. AloKvadro

    AloKvadro Активный пользователь

    С нами с:
    7 фев 2010
    Сообщения:
    24
    Симпатии:
    0
    СЛАВА Simpliest'у!
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    AloKvadro
    Блин, парень прибодал глупостями.
    Решил вопрос, сказал один раз спасибо, и спокойно ушел.

    Лучшая благодарность - это твое умение самостоятельно преодолевать трудности.
     
  9. AloKvadro

    AloKvadro Активный пользователь

    С нами с:
    7 фев 2010
    Сообщения:
    24
    Симпатии:
    0
    PHP:
    1.  <?php
    2.                          
    3.       $result = mysql_query("SELECT komanda,god, sum(ochki) as sum_ochki, godtyrnira
    4.      FROM raiting AS r
    5.      JOIN kubki AS k ON kubok = title
    6.     group by komanda,godtyrnira ORDER by sum_ochki DESC",$db);
    7.        if (!$result)
    8.    {
    9.     echo "<p><strong>Код ошибки:</strong></p>";
    10.     exit(mysql_error());
    11.     }
    12.      $mydata = array();
    13.     while($row = mysql_fetch_assoc($result))
    14.      {
    15.      $mydata[$row["komanda"]][$row["godtyrnira"]] = $row["sum_ochki"];
    16.      }
    17.    $n=1;
    18.    foreach($mydata as $komanda=>$data)
    19.      {
    20.      $data["2009"] = round($data["2009"],'2');
    21.      ?>
    22.      <tr>
    23.      <td width='50' align="center"><?php echo $n++;?></td>
    24.      <td width='70' align="center"><?php echo $komanda;?></td>
    25.      <td width='50' align="center"><?php echo $data["2009"];?></td>
    26.      <td width='50' align="center"><?php echo $data["2010"];?></td>
    27.      <td width='50' align="center"><?php echo $data["2011"];?></td>
    28.      <td width='50' align="center"><?php echo $data["2009"]+$data["2010"]+$data["2011"];?></td>
    29.      </tr>
    30.      <?php }?>
    Сейчас оно сортирует таблицу по 2009 году. Если вводить данные на 2010 год, то сортировка не работает по сумме всех очков, скажите пожалуйста, как сделать, чтобы эта таблица сортировала все команды по сумме 3 годов?
     
  10. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Для этого нужно сделать 2 вещи.

    1. перенестить подсчет общей суммы за все года в цикл, где происходит выборка из базы.
    2. затем посортировать при помощи функции usort()

    Ну, а потом уже можно выводить.
     
  11. AloKvadro

    AloKvadro Активный пользователь

    С нами с:
    7 фев 2010
    Сообщения:
    24
    Симпатии:
    0
    Ужас, я даже не понимаю о чем идет речь, подскажите пожалуйста, с чего начать то? (
     
  12. AloKvadro

    AloKvadro Активный пользователь

    С нами с:
    7 фев 2010
    Сообщения:
    24
    Симпатии:
    0
    Хоть что-то, пожалуйста.