2015-04-21 2 views
0

В моей базе данных У меня есть 2 таблицы.несколько петель foreach в таблице html

моста таблица:

______________________________________ 
| axle_id | train_id | axle | distance | 
|_________|__________|______|__________| 
| 1  |  1 | 1 | 20 | 
| 2  |  1 | 2 | 50 | 
| 3  |  1 | 3 | 200 | 
| 4  |  1 | 4 | 50 | 
| 5  |  1 | 5 | 200 | 
| 6  |  1 | 6 | 50 | 
| 7  |  1 | 7 | 200 | 
| 8  |  1 | 8 | 50 | 
|_________|__________|______|__________| 

выдвижного стол:

___________________________________________ 
| bogie_id | axle_id | train_id | bogie_nr | 
|__________|_________|__________|__________| 
| 1  | 1 | 1  | 1  | 
| 2  | 2 | 1  | 1  | 
| 3  | 3 | 1  | 2  | 
| 4  | 4 | 1  | 2  | 
| 5  | 5 | 1  | 3  | 
| 6  | 6 | 1  | 3  | 
| 7  | 7 | 1  | 4  | 
| 8  | 8 | 1  | 4  | 
|__________|_________|__________|__________| 

Теперь я хочу, чтобы показать эти результаты на моей странице в таблице, как это:

_____________________ 
| bogie_nr | axle | 
|__________|_________| 
| 1  | 1 | 
| 1  | 2 | 
| 2  | 3 | 
| 2  | 4 | 
| 3  | 5 | 
| 3  | 6 | 
| 4  | 7 | 
| 4  | 8 | 
|__________|_________| 

I судимого делает это с помощью этого кода:

<table id="end_result_axle_bogies"> 
    <tr> 
     <th>Train Axles</th> 
     <th>Train Bogies</th> 
    </tr> 

    <!--Show the end result!--> 
    <?php 
     $show_end_table = $database->axles($_GET['train_id']); 
     $show_end_table2 = $database->bogies($_GET['train_id']); 
     foreach($show_end_table as $end_axle_table){ 
      echo "<tr>" . "<td>" . $end_axle_table['axle'] . "</td>"; 
     } 
     foreach($show_end_table2 as $end_axle_table2){ 
      echo "<td>" . $end_axle_table2['bogie_nr'] . "</td>" . "</tr>"; 
     } 
    ?> 
</table> 

Выходные работы (показывает мне правильную информацию). Но таблица работает не очень хорошо. Он показывает мне этот результат: (. Сделанный текст зеленого цвета, чтобы увидеть, если DIV работает которым делает)

End results Shown

.

Кто-нибудь знает, как правильно работать в таблице?

+1

Измените знак foreach. Как и сейчас, это ... Эхо все в одном foreach - лучший способ. – Alaanor

ответ

1

Попробуйте это:

<?php 
    $show_end_table = $database->axles($_GET['train_id']); 
    $show_end_table2 = $database->bogies($_GET['train_id']); 
    $table2 = ""; 
    foreach($show_end_table2 as $end_axle_table2){ 
     $table2[] = $end_axle_table2['bogie_nr']; 
    } 
    foreach($show_end_table as $key => $end_axle_table){ 
     echo "<tr>"; 
     echo "<td>" . $end_axle_table['axle'] . "</td>"; 
     echo "<td>" . $table2[$key] . "</td>"; 
     echo "</tr>"; 
    } 
?> 

Изменение Еогеасп. Как и сейчас, это <tr><td>1</td><tr><td>2</td> ... Эхо все в одном foreach - лучший способ.

+0

$ end_axle_table2 здесь undefind, потому что это не в foreach, может ли это быть исправлено ?? – Mitch

+0

Отредактировано! Этот код должен работать. – Alaanor

+0

Это работает :) Большое спасибо! – Mitch

0

Может быть следующий код работает для вас ....

<table id="end_result_axle_bogies"> 
<tr> 
    <th>Train Axles</th> 
    <th>Train Bogies</th> 
</tr> 

<!--Show the end result!--> 
<?php 
    $show_end_table = $database->axles($_GET['train_id']); 
    $show_end_table2 = $database->bogies($_GET['train_id']); 
    foreach($show_end_table as $end_axle_table){ 
     echo "<tr>" . "<td>" . $end_axle_table['axle'] . "</td>"; 
    } 
</table> 
<table> 
foreach($show_end_table2 as $end_axle_table2){ 
     echo "<tr><td>" . $end_axle_table2['bogie_nr'] . "</td>" . "</tr>"; 
    } 
?> 
</table> 
+0

Немного изменился, теперь он показывает 2 таблицы. но я хотел бы иметь их в 1 таблице, если это возможно – Mitch

0

Попробуйте это:

Fetch все bogie_nr и соответствующие axle_id из тележки таблице
, а затем сделать петлю как

foreach(bogie_nr as bogie) 
<tr> 
    <td> show bogie_nr </td> 
    <td> Fetch axle for respective axle_id of bogie_nr from axle table 
    </td> 
</tr> 
end for loop 
</tr> 
0

Вы можете попробовать использовать MySQL View (info here), а затем цикл по 1 в цикле foreach вместо того, чтобы вы делали 2 обращения к базе данных.