2015-04-17 2 views
1

Надеюсь, у вас отличный день. У меня есть система перетаскивания
на моем сайте и в основном это сайт для схем для жителей. Если вы хотите создать новую схему
, у вас есть список пиктограмм (значков), и вы перетаскиваете значки, представляющие виды деятельности
рядом с каждым из жителей. Теперь вставка отлично работает, но показывая данные нет.
7 fetch_assoc в то время как fetch_assoc

Это моя структура таблицы:

1. Схемы:

  • IDScheme
  • Будни
  • Resident (INDEX -> IDResident)
  • активность (INDEX - > IDActivity)
  • Rangnr (от 1 до 7, поскольку существует 7 мероприятий на одного жителя в сутки)
  • Datum

2. Резиденты (= bewoners):

  • IDResident
  • Фото
  • ...

3. Деятельность (= pictogrammen):

  • IDActivity
  • Иконка

Практически это то, что мне нужно, чтобы отобразить данные. Как вы можете видеть, таблица «Схемы» - это
основной. Теперь для отображения схем, это произойдет через HTML-таблицу. Позвольте мне прыгать
прямо в код: Rangnr в основном место, где деятельность (значок) является

<div id="MainDiv"> 
    <div id="ListBewoners"> 
     <table id="ListBewonersUL">           
      <?php          
      $sql = "SELECT * 
        FROM ActiviteitenSchema A, Bewoners B 
        WHERE A.Bewoner = B.IDBewoner 
        GROUP BY Bewoner 
        "; 

     $sqlrang1 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
        WHERE P.IDPictogram = A.Activiteit AND Rangnr = 1 
        AND DatumAangemaakt = $datumAangemaakt"; 
     $sqlrang2 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
        WHERE P.IDPictogram = A.Activiteit AND Rangnr = 2 
        AND DatumAangemaakt = $datumAangemaakt"; 
     $sqlrang3 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
        WHERE P.IDPictogram = A.Activiteit AND Rangnr = 3 
        AND DatumAangemaakt = $datumAangemaakt"; 
     $sqlrang4 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
        WHERE P.IDPictogram = A.Activiteit AND Rangnr = 4 
        AND DatumAangemaakt = $datumAangemaakt"; 
     $sqlrang5 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
        WHERE P.IDPictogram = A.Activiteit AND Rangnr = 5 
        AND DatumAangemaakt = $datumAangemaakt"; 
     $sqlrang6 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
        WHERE P.IDPictogram = A.Activiteit AND Rangnr = 6 
        AND DatumAangemaakt = $datumAangemaakt"; 
     $sqlrang7 = "SELECT * FROM ActiviteitenSchema A, Pictogrammen P 
        WHERE P.IDPictogram = A.Activiteit AND Rangnr = 7 
        AND DatumAangemaakt = $datumAangemaakt"; 

     $res = mysqli_query($mysqli, $sql); 
     $resRang1 = mysqli_query($mysqli, $sqlrang1); 
     $resRang2 = mysqli_query($mysqli, $sqlrang2); 
     $resRang3 = mysqli_query($mysqli, $sqlrang3); 
     $resRang4 = mysqli_query($mysqli, $sqlrang4); 
     $resRang5 = mysqli_query($mysqli, $sqlrang5); 
     $resRang6 = mysqli_query($mysqli, $sqlrang6); 
     $resRang7 = mysqli_query($mysqli, $sqlrang7); 

     while ($row = mysqli_fetch_assoc($res)){ 
     ?> 
     <tr> 
      <td><?php echo $row["IDBewoner"] ?></td> 
      <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row['Foto']) . '" width="90" height="90">' ?></td> 
     <?php     
      $row1 = mysqli_fetch_assoc($resRang1); 
      $row2 = mysqli_fetch_assoc($resRang2); 
      $row3 = mysqli_fetch_assoc($resRang3); 
      $row4 = mysqli_fetch_assoc($resRang4); 
      $row5 = mysqli_fetch_assoc($resRang5); 
      $row6 = mysqli_fetch_assoc($resRang6); 
      $row7 = mysqli_fetch_assoc($resRang7); 

      ?> 
     <!-- Rang1 Controle --> 
     <?php 
      if(!empty($row1)) { 
     ?> 
      <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row1['Pictogram']) . '" width="90" height="90">' ?></td> 
     <?php 
      } else { 
     ?> 
      <td><?php echo "Empty"; ?></td> 
     <?php   
      } 
     ?> 

     <!-- Rang2 Controle -->  
     <?php 
      if(!empty($row2)) { 
     ?> 
      <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row2['Pictogram']) . '" width="90" height="90">' ?></td> 
     <?php 
      } else { 
     ?> 
      <td><?php echo "Empty2"; ?></td> 
     <?php 
      } 
     ?> 

     <!-- Rang3 Controle -->  
     <?php 
      if(!empty($row3)) { 
     ?> 
      <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row3['Pictogram']) . '" width="90" height="90">' ?></td> 
     <?php 
      } else { 
     ?> 
      <td><?php echo "Empty3"; ?></td> 
     <?php 
      } 
     ?> 

     <!-- Rang4 Controle -->  
     <?php 
      if(!empty($row4)) { 
     ?> 
      <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row4['Pictogram']) . '" width="90" height="90">' ?></td> 
     <?php 
      } else { 
     ?> 
      <td><?php echo "Empty4"; ?></td> 
     <?php 
      } 
     ?> 

     <!-- Rang5 Controle -->  
     <?php 
      if(!empty($row5)) { 
     ?> 
      <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row5['Pictogram']) . '" width="90" height="90">' ?></td> 
     <?php 
      } else { 
     ?> 
      <td><?php echo "Empty5"; ?></td> 
     <?php 
      } 
     ?> 

     <!-- Rang6 Controle -->  
     <?php 
      if(!empty($row6)) { 
     ?> 
      <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row6['Pictogram']) . '" width="90" height="90">' ?></td> 
     <?php 
      } else { 
     ?> 
      <td><?php echo "Empty6"; ?></td> 
     <?php 
      } 
     ?> 

     <!-- Rang7 Controle -->  
     <?php 
      if(!empty($row7)) { 
     ?> 
      <td><?php echo '<img src="data:image/jpeg;base64,' . base64_encode($row7['Pictogram']) . '" width="90" height="90">' ?></td> 
     <?php 
      } else { 
     ?> 
      <td><?php echo "Empty7"; ?></td> 
     <?php 
      } 
     ?> 

     </tr> 
     <?php             
      } 
     ?> 

    </table> 

    </div> 
</div> 

В результате этого, как данные выглядит так: Displaying the data using the above code

Но проблема в том, , это, как я вставил их (извините небольшая проблема CSS): Excuse me about the design

проблема: вставленные данные отлично хорошо добавленным, и я проверил их в но отображение
не работает так, как должно быть. Есть ли лучший способ получить таблицу 8 раз? Потому что
По-видимому, мой код на самом деле не работает.

+2

Вы должны использовать _one_ database query и цикл для вывода данных ... – CBroe

+0

@CBroe Можете ли вы показать мне пример? –

+1

Если вы не используете предложение 'ORDER BY' в ваших запросах, порядок строк результатов абсолютно непредсказуем. Это не обязательно возвращает их в том порядке, в котором они были вставлены. Если вы хотите их в этом порядке, вы должны включить столбец идентификатора, который использует 'auto_increment', а затем использовать' ORDER BY id' в SQL. – Barmar

ответ

1

Прежде всего, как указано в некоторых комментариях, вы можете захватывать данные в одном запросе и прокручивать его.

Все, что вам нужно его поддерживать порядок, когда они где вставлено это использовать ORDER BY пункт:

SELECT P.Pictogram, A.Rangnr 
FROM ActiviteitenSchema A 
INNER JOIN Pictogrammen P ON P.IDPictogram = A.Activiteit 
WHERE DatumAangemaakt = $datumAangemaakt 
ORDER BY A.Rangnr ASC 

Таким образом, вы можете записать результат в цикле:

while ($row = mysqli_fetch_assoc($res)) { 
    if(!is_null($row["Pictogram"])) { 
     ?> 
     <td><img src="data:image/jpeg;base64,<?php echo base64_encode($row['Pictogram']) ?>" width="90" height="90"></td> 
     <?php 
    } else { 
     ?> 
     <td>Empty <?php echo $row["Rangnr"] ?></td> 
     <?php   
    } 
} 
+0

И как мне это получить? ' '?>' Мне нужно, чтобы получить идентификатор жителей из другой таблицы –

+0

мне нужно выбрать «IDBewoner' &' Foto »тоже –

+1

Это был бы базовый синтаксис SQL. вы можете использовать 'JOIN' для получения информации, которую хотите. https://dev.mysql.com/doc/refman/5.0/en/join.html – rcdmk

Смежные вопросы