2015-06-23 4 views
1

Привет, поэтому я довольно новичок в доступе к php и sql, поэтому это может быть очень простая проблема, но я не могу понять, как это понять.PHP потянув из MySql

Мне нужно вытащить все данные из нашего штатного стола, а затем перечислить его на нашей странице. Это было бы очень просто, если бы он просто шел по странице, но для каждых 4 сотрудников, которые были вытащены, мне нужно закрыть div и снова открыть новый div и продолжить потянуть участников. Я не уверен, как закодировать это и все еще иметь возможность открывать и закрывать div. Вот что я имею прямо сейчас, который просто тянет одного и того же сотрудника 4 раза, а затем переходит к следующему сотруднику в следующем ряду. Заранее спасибо за помощь!

<?php 
$sql = mysql_query("SELECT * FROM staff ORDER BY id"); 
$array = array(); 


while ($row = mysql_fetch_assoc($sql)) { ?> 
<div class="row staff-padding"> 
    <div class="col-sm-3"> 
     <img src="<?php echo $row[img_link]; ?>" class="img-thumbnail img-staff"/> 
     <h4><?php echo $row[name]; ?></h4> 
     <p><?php echo $row[job_title]; ?><br /> 
      <span class="glyphicon glyphicon-phone-alt"></span> <?php echo $row[phone_number]; ?> <br /> 
      <span class="glyphicon glyphicon-envelope"></span> <a href="<?php echo $row[email]; ?>"><?php echo $row[email]; ?></a><br /> 
     </p> 
    </div> 

    <div class="col-sm-3"> 
     <img src="<?php echo $row[img_link]; ?>" class="img-thumbnail img-staff"/> 
     <h4><?php echo $row[name]; ?></h4> 
     <p><?php echo $row[job_title]; ?><br /> 
      <span class="glyphicon glyphicon-phone-alt"></span> <?php echo $row[phone_number]; ?> <br /> 
      <span class="glyphicon glyphicon-envelope"></span> <a href="<?php echo $row[email]; ?>"><?php echo $row[email]; ?></a><br /> 
     </p> 
    </div> 
    <div class="col-sm-3"> 
     <img src="<?php echo $row[img_link]; ?>" class="img-thumbnail img-staff"/> 
     <h4><?php echo $row[name]; ?></h4> 
     <p><?php echo $row[job_title]; ?><br /> 
      <span class="glyphicon glyphicon-phone-alt"></span> <?php echo $row[phone_number]; ?> <br /> 
      <span class="glyphicon glyphicon-envelope"></span> <a href="<?php echo $row[email]; ?>"><?php echo $row[email]; ?></a><br /> 
     </p> 
    </div> 
    <div class="col-sm-3"> 
     <img src="<?php echo $row[img_link]; ?>" class="img-thumbnail img-staff"/> 
     <h4><?php echo $row[name]; ?></h4> 
     <p><?php echo $row[job_title]; ?><br /> 
      <span class="glyphicon glyphicon-phone-alt"></span> <?php echo $row[phone_number]; ?> <br /> 
      <span class="glyphicon glyphicon-envelope"></span> <a href="<?php echo $row[email]; ?>"><?php echo $row[email]; ?></a><br /> 
     </p> 
    </div> 
</div> 
+0

возможно дубликат [Split строк таблицы в столбцы] (http://stackoverflow.com/questions/18013970/split-table-rows-into-columns) – Machavity

+0

** ПРЕДУПРЕЖДЕНИЕ **: Если вы хотите купить просто изучая PHP, пожалуйста, не изучайте устаревший интерфейс 'mysql_query'. Это ужасно и удаляется в будущих версиях PHP. Современная замена, такая как [PDO, не трудно учиться] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/). Руководство, подобное [PHP The Right Way] (http://www.phptherightway.com/), может помочь объяснить лучшие практики. Всегда будьте абсолютно уверены * ваши пользовательские параметры [правильно экранированы] (http://bobby-tables.com/php), или у вас будут серьезные [ошибки SQL-инъекций] (http://bobby-tables.com/). – tadman

+0

Спасибо, что я планирую изучить этот метод в ближайшем будущем, потому что, когда я занимался исследованием того, как делать вещи, он всегда возвращался с PDO. Однако сервер школ, в котором я сейчас работаю, пока не поддерживает его. –

ответ

2

Вы должны реализовать то время цикла для отдельных итераций над каждым работником и добавить порядковый переменный счетчик, отслеживающие итераций. Внутри цикла вы будете иметь два, если заявления, когда переменная счетчика делится на 4 равномерно, открывать и закрывать дивы .. Что-то вроде (псевдо-код):

counter=0; 
while(records_still_exist){ 

if(counter%4==0){ 

// open div code 
} 

...employee stuff... 

if(counter%4==0){ 

// close div code 
} 

counter ++; 
} 
2

Вот довольно чистый способ Делать это.

<?php ?>foreach(array_chunk($memebers->all(), 4) as $row) ?> 
    <div class="extra div u want to add every 4 members"> 
     <?php foreach($row as $memebers) 

     endforeach ?> 
    </div> 
<?php endforeach ?> 
Смежные вопросы