php несколько альтернативных столбцов цикла - PullRequest
1 голос
/ 12 декабря 2011

Я очень новичок в php и html, и я пытаюсь создать такой вывод, исходя из набора записей таблицы базы данных.где "запись таблицы n" - это столбец из набора записей таблицы базы данных

, в основном таблица будет столбцом 1x2x1x2x4 с 5 строками

<table border=1>
    <tr> 
        <td>table record 1 </td>
    </tr>

    <tr> 
        <td> table record 2 </td> <td>table record 3 </td>
    </tr>   
    <tr> 
        <td> table record 4 </td>
    </tr>
    <tr> 
        <td> table record 5 </td> <td>table record 6 </td>
    </tr>
    <tr> 
        <td> table record 7 </td> 
        <td>table record 8 </td>
        <td> table record 9 </td> 
        <td>table record 10</td>
    </tr>

</table>

я только дошел до этого

          $next_Column = 1;


          echo "<tr>";

           while ( $row = mysql_fetch_array( $result ) ) 
           { 
    echo "<td>". $row['name']. "</td>"; 
    $next_Column ++;

    if( $next_Column > 1 )
    {
        echo "<tr>";
        $next_Column = 1;
    }
       } 
          ?> 

1 Ответ

0 голосов
/ 12 декабря 2011

Вышеуказанный цикл всегда будет повторять <tr>, потому что, когда вы доберетесь до if, $next_column всегда будет> 1. Вам нужно использовать вложенные циклы для обхода столбцов.Что-то вроде кода на эта страница должна помочь.Хотя, если вы ЗНАЕТЕ, что вам нужен именно этот формат, почему бы просто не сделать так, чтобы ваш php был таким?

<table border=1>
<?php
    while ( $row = mysql_fetch_array( $result ) )
    {
        echo '<tr><td>' . $row[0] . '</td></tr>';
        echo '<tr><td>' . $row[1] . '</td><td>' . $row[2] . '</td></tr>';
        echo '<tr><td>' . $row[3] . '</td></tr>';
        echo '<tr><td>' . $row[4] . '</td><td>' . $row[5] . '</td></tr>';
        echo '<tr><td>' . $row[6] . '</td><td>' . $row[7] . '</td>';
        echo '<td>' . $row[8] . '</td><td>' . $row[9] . '</td></tr>';
    }
?>
</table>

Обратите внимание, что все эти числа можно заменить именами столбцов в кавычках (например, 'name'),Кроме того, приведенный выше код будет выдавать 5 строк таблицы для КАЖДОГО РЯДА в базе данных.Это то, что вы хотите сделать?

РЕДАКТИРОВАТЬ: Если вы пытаетесь перебрать каждую строку и добавить ее в таблицу, основанную на количестве столбцов ТОГО, то я бы предложил что-то вроде этого:

<table border=1>
<?php
    while ( $row = mysql_fetch_array( $result ) )
    {
        echo '<tr>';

        //Loop through cols
        foreach($row as $value)
        {
            if($value)
            {
                echo '<td>' . $value . '</td>';
            }
        }

        echo '</tr>'
    }
?>
</table>

Это поместит значение в строку таблицы ТОЛЬКО ЕСЛИ она находится в базе данных, поэтому, если у вас есть строка с 1 заполненным столбцом, вы получите 1 столбец таблицы, но строка с 4 заполненными столбцами будет иметь4 столбца таблицы.

...