2015-04-30 4 views
2

Моя база данных содержит таблицу с именем tblprojects с именами столбцов говорят, project_num, project_status, PROJECT_NAME. Я хочу использовать foreach loop для получения данных из базы данных и отображения записей в php-таблице.Как использовать Еогеасп получить данные из таблицы базы данных -

Однако я не могу отобразить записи со следующим кодом. Пожалуйста, помогите мне в исправлении. Является новым для использования PHP.

Ниже приводится код, который я написал:

<?php 
    $projects = array(); 
    // fetch data from the database 
    $records = mysql_query('select project_num, project_status, project_name from tblprojects') or die("Query fail: " . mysqli_error()); 
?> 


<table class="table table-striped table-condensed" id="tblData"> 
    <thead> 
     <tr> 
      <th>Project Name</th> 
      <th>Project Number</th> 
      <th>Project Status</th> 
     </tr> 
    </thead> 

    <tbody> 
     <?php 
      while ( $row = mysql_fetch_assoc($records) ) 
      { 
       $projects[] = $row; 
       foreach ($projects as $project): 
     ?> 
     <tr> 
      <td><?echo $project['proj_name']; ?></td> 
      <td><?echo $proj['proj_num']; ?></td> 
      <td><?echo $proj['proj_status']; ?></td> 
     </tr> 

     <?php endforeach; 
      } 
     ?> 


    </tbody>   
</table> 

Пожалуйста, помогите мне в решении проблемы, ответ с исправленным кодом (предпочтительно). Заранее большое спасибо.

+2

Пожалуйста, [прекратить использование 'mysql_ *' функции] (HTTP : //stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://jayblanchard.net/demystifying_php_pdo.html). Вам не нужно использовать 'foreach()'. –

+0

Благодарим вас за предложение ur. Я позабочусь о том, чтобы не использовать функции mysql_ дальше. Однако я хочу использовать для каждого, чтобы получить данные, потому что я хочу связать каждую из моих строк таблицы с модальной, которая также отображает все данные в остальных столбцах. –

ответ

7

foreach не нужен здесь.

<?php 
    $projects = array(); 
    while ($project = mysql_fetch_assoc($records)) 
    { 
     $projects[] = $project; 
    } 
    foreach ($projects as $project) 
    { 
?> 
    <tr> 
     <td><?php echo $project['proj_name']; ?></td> 
     <td><?php echo $project['proj_num']; ?></td> 
     <td><?php echo $project['proj_status']; ?></td> 
    </tr> 
<?php 
    } 
?> 
+1

Благодарим вас за предложение ur.However, я хочу использовать foreach для получения данных, потому что я хочу связать каждую строку таблицы с модами bootstrap, которые также отображают все данные в остальных столбцах. (У меня на самом деле 5 столбцов, но отображается только 3 в таблице, а модальный будет отображать все данные в 5 столбцов для каждой строки). Поэтому спрашивайте, как я могу связать foreach с этим циклом while. –

+0

, тогда сначала создайте массив, а затем используйте foreach. –

+0

Было бы очень полезно, если вы можете отредактировать свой код и показать его мне, потому что я попытался использовать его, но не могу его обработать. (см. верхние строки моего кода). Заранее спасибо. –

0

Здравствуйте Попробуйте этот код не нужно Foreach цикл так, что это сэкономит ваше время и хорошую практику в будущем

<?php 
    $projects = array(); 
    while ($project = mysql_fetch_assoc($records)) 
    { 

?> 
    <tr> 
     <td><?php echo $project['proj_name']; ?></td> 
     <td><?php echo $project['proj_num']; ?></td> 
     <td><?php echo $project['proj_status']; ?></td> 
    </tr> 
<?php 
    } 
?> 
0
<?php 
     // fetch data from the database 
     $records = mysql_query('select project_num, project_status, project_name from tblprojects') or die("Query fail: " . mysqli_error()); 
?> 
<table class="table table-striped table-condensed" id="tblData"> 
    <thead> 
     <tr> 
      <th>Project Name</th> 
      <th>Project Number</th> 
      <th>Project Status</th> 
     </tr> 
    </thead> 

    <tbody> 
     <?php 
      //records as in an array 

foreach($records as $data) // using foreach to display each element of array 
      { 
       echo "<tr><td>".$data['proj_name']."</td> 
          <td>".$data['proj_num']."</td> 
          <td>".$data['proj_status']."</td> 
         </tr>"; 
      } 
     ?> 
    </tbody>   
</table> 
+1

Пожалуйста, добавьте некоторое объяснение в свой ответ. Благодаря! – Sampada

+0

@Sampada: Я добавил комментарии для объяснения. Пожалуйста, ответьте, если необходимо дальнейшее объяснение –

+0

Было ли это полезно? –

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