2015-12-07 3 views
0

У меня проблема с загрузкой и создание сетки с ответвлением из 4 столбцов из ответа mysql. Проблема в том, что если второй запрос mysql имеет переменное количество результатов, он тормозит сетку.Проблема с сеткой bootstrap и ответом mysql

Вот мой код (где первый запрос имеет 9 результатов и второй запрос имеет переменное число результатов):

<?php 
$a = "SELECT * FROM $table_users ORDER BY username"; 
$result = mysql_query($a); 
?> 
<div class="container"> 
    <div class="row"> 
     <?php while ($row = mysql_fetch_array($result)) {?> 
     <div class="col-xs-3" style="background-color:aqua;"> 
      <?php echo $row['username']; 
      $b = "SELECT * FROM $table_presents WHERE bought_for='$row[username]' OR bought_for='' ORDER BY id"; 
      $result_presents = mysql_query($b) or die(mysql_error()); 
      while ($row_presents = mysql_fetch_array($result_presents)) { 
      ?> 
      <div style="background-color:red;"> 
       Hello world! 
      </div> 
      <?php }?> 
     </div> 
     <?php }?> 
    </div> 
</div> 

, который дает мне это:

enter image description here

вместо из этого (очевидно, со многими «Hello world»):

enter image description here

Любая помощь очень ценится!

ответ

0

Bootstrap не претендует на любые изысканные бин-упаковки на панелях разных размеров. Вы могли бы выполнить некоторую работу программирования или css, чтобы все ваши панели имели одинаковый размер.

Если это не сработает для вашего приложения, вам понадобится библиотека макетов, в которой выполняется сборка бинов, чтобы эти панели разных размеров правильно выровнялись.

Существует несколько таких библиотек, доступных как плагины jQuery.

+0

Ok. Раньше не слышал об упаковке. Будет иметь google .. –

+0

Спасибо soo много для указывая меня в правильном направлении. Найдено: [https://github.com/Sam152/Javascript-Equal-Height-Responsive-Rows]. Работает отлично! –

0

В этом $row[username] не так, как должно быть $row['username'].

$b = "SELECT * FROM $table_presents WHERE bought_for='$row[username]' OR bought_for='' ORDER BY id"; 

BTW, я изменил код. Попробуйте это.

<?php 
$a = "SELECT * FROM $table_users ORDER BY username"; 
$result = mysql_query($a); 
?> 
<div class="container"> 
    <div class="row"> 
     <?php while ($row = mysql_fetch_array($result)) 
     { 
     $username=$row['username']; 
     ?> 
     <div class="col-xs-3" style="background-color:aqua;"> 
      <?php echo $username; 
      $b = "SELECT * FROM $table_presents WHERE bought_for='$username' OR bought_for='' ORDER BY id"; 
      $result_presents = mysql_query($b) or die(mysql_error()); 
      while ($row_presents = mysql_fetch_array($result_presents)) { 
      ?> 
      <div style="background-color:red;"> 
       Hello world! 
      </div> 
      <?php }?> 
     </div> 
     <?php }?> 
    </div> 
</div> 

[ПРИМЕЧАНИЕ: Пользователи могут вводить свои команды SQL. Используйте подготовленные заявления и параметризованные запросы. Для получения дополнительной информации нажмите Prevent SQL Injections

+0

Да, спасибо. Просто поставьте это быстро, чтобы проиллюстрировать проблему ... –

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