2016-02-02 6 views
0

Я хотел бы, чтобы отдельные столбцы столбцов отображались для каждого столбца данных таблицы, который был эхо-кодом?Как иметь столбцы заголовков для каждого результата столбца PHP

<form> 
<?php 

$numeroOption= $_POST['numero']; 
$roomtype= $_POST['roomtype']; 
$selectOption = $_POST['parkname']; 
$query = "SELECT * FROM `ROOMS` WHERE `Capacity` < '$numeroOption' AND `Park` LIKE '$selectOption%' AND `dataProjector` LIKE '$proj_check%' AND `Whiteboard` LIKE '$white_check%' AND `OHP` LIKE '$ohp_check%' AND `WheelchairAccess` LIKE '$wheel_check%' AND `lectureCapture` LIKE '$cap_check%' AND `Style` LIKE '$roomtype%'"; 
$result = mysql_query($query); 
if ($result == FALSE) die ("could not execute statement $query<br />"); 
echo "<form action='' method='post'>"; 
echo "<table>"; 

while($row = mysql_fetch_array($result)){       
    echo "<tr><td>" . $row['roomCode'] . "</td>"; 
    echo "<td>" . $row['Style'] . "</td><td>" . $row['dataProjector'] . "</td>"; 
    echo "<td>" . $row['Whiteboard'] . "</td><td>" . $row['OHP'] . "</td>"; 
    echo "<td>" . $row['wheelchairAccess'] . "</td>"; 
    echo "<td>" . $row['lectureCapture'] . "</td>"; 
    echo "<td><input type='radio' name='radioSelect' value= '". $row['roomCode']."'></td>"; 
} 
echo "<input type='submit' name='ttroom' id='ttroom' name='ttroom'>"; 
echo "</tr>"; 
echo "</table>"; 
echo "</form>"; 
+0

есть бродячий/запасной тег 'form' – RamRaider

ответ

1

Я не уверен, если я понимаю вашу проблему, но я думаю, что ваше решение просто создайте строку заголовка ПЕРЕД СОСТОЯНИЕМ. Это сказать:

... 
    echo "<table>"; 
    echo '<tr>'; 
    echo '<th>Title 1</th>'; 
    echo '<th>Title 2</th>'; 
    echo '<th>Title 3</th>'; 
    echo '<th>Title 4</th>'; 
    echo '<th>Title 5</th>'; 
    echo '</tr>'; 
    while($row = mysql_fetch_array($result)){       
     echo "<tr><td>" . $row['roomCode'] . "</td>"; 
     echo "<td>" . $row['Style'] . "</td><td>" . $row['dataProjector'] . "</td>"; 
     echo "<td>" . $row['Whiteboard'] . "</td><td>" . $row['OHP'] . "</td>"; 
     echo "<td>" . $row['wheelchairAccess'] . "</td>"; 
... 
0

Просто вставьте <th> «с после echo "<table>";, как так:

echo '<tr> 
     <th>Title 1</th> 
     <th>Title 2</th> 
     <!-- add as many as you need --> 
     </tr>'; 
0

Вы можете добавить, прежде чем перебирать, записи новой строки с соответствующими заголовками столбцов. Как правило, вы можете использовать тег th, хотя он может быть стандартным тегом td, если вы пожелаете.

<?php 

    $numeroOption= $_POST['numero']; 
    $roomtype= $_POST['roomtype']; 
    $selectOption = $_POST['parkname']; 
    $query = "SELECT * FROM `ROOMS` WHERE `Capacity` < '$numeroOption' AND `Park` LIKE '$selectOption%' AND `dataProjector` LIKE '$proj_check%' AND `Whiteboard` LIKE '$white_check%' AND `OHP` LIKE '$ohp_check%' AND `WheelchairAccess` LIKE '$wheel_check%' AND `lectureCapture` LIKE '$cap_check%' AND `Style` LIKE '$roomtype%'"; 
    $result = mysql_query($query); 
    if ($result == FALSE) die ("could not execute statement $query<br />"); 

    echo "<form action='' method='post'>"; 
    echo "<table> 
      <tr> 
       <th scope='col'>Room Code</th> 
       <th scope='col'>Style</th> 
       <th scope='col'>Projector</th> 
       <th scope='col'>Whiteboard</th> 
       <th scope='col'>OHP</th> 
       <th scope='col'>Wheelchair Access</th> 
       <th scope='col'>Lecture Capture</th> 
       <th scope='col'>&nbsp;</th> 
      </tr>"; 

    while($row = mysql_fetch_array($result)){       
     echo "<tr><td>" . $row['roomCode'] . "</td>"; 
     echo "<td>" . $row['Style'] . "</td><td>" . $row['dataProjector'] . "</td>"; 
     echo "<td>" . $row['Whiteboard'] . "</td><td>" . $row['OHP'] . "</td>"; 
     echo "<td>" . $row['wheelchairAccess'] . "</td>"; 
     echo "<td>" . $row['lectureCapture'] . "</td>"; 
     echo "<td><input type='radio' name='radioSelect' value= '". $row['roomCode']."'></td></tr>"; 
    } 
    echo "<input type='submit' name='ttroom' id='ttroom' name='ttroom'>"; 
    echo "</tr>"; 
    echo "</table>"; 
    echo "</form>"; 

?> 

Что-то я не заметил сразу, является отсутствие закрытия tr тег внутри цикла - есть только один закрывание tr тег, и это вне цикла! Чтобы добавить заголовки столбцов динамически, основываясь на фактических имен полей (что я изначально думал, что ты хотел сделать, вы можете использовать такой подход, как это: -

<?php 

    $numeroOption= $_POST['numero']; 
    $roomtype= $_POST['roomtype']; 
    $selectOption = $_POST['parkname']; 
    $query = "SELECT * FROM `ROOMS` WHERE `Capacity` < '$numeroOption' AND `Park` LIKE '$selectOption%' AND `dataProjector` LIKE '$proj_check%' AND `Whiteboard` LIKE '$white_check%' AND `OHP` LIKE '$ohp_check%' AND `WheelchairAccess` LIKE '$wheel_check%' AND `lectureCapture` LIKE '$cap_check%' AND `Style` LIKE '$roomtype%'"; 
    $result = mysql_query($query); 
    if ($result == FALSE) die ("could not execute statement $query<br />"); 





    /* an array to store column names */ 
    $colheaders=array(); 

    /* find how many fields in each row there are */ 
    $iCols=mysql_num_fields($result); 

    /* Get the column names */ 
    for($i=0; $i < $iCols; $i++) $colheaders[]=mysql_field_name($result, $i); 

    /* Add an item for the radio buttons */ 
    $colheaders[]='Options'; 

    /* ensure all of recordset is available to iterate through after getting field names*/ 
    mysql_data_seek($result, 0); 



    echo "<form action='' method='post'>"; 
    echo "<table> 
      <tr>"; 

    foreach($colheaders as $colname) echo "<th scope='col'>{$colname}</th>"; 

    echo " 
      </tr>"; 

    while($row = mysql_fetch_array($result)){       
     echo " 
     <tr> 
      <td>" . $row['roomCode'] . "</td> 
      <td>" . $row['Style'] . "</td> 
      <td>" . $row['dataProjector'] . "</td> 
      <td>" . $row['Whiteboard'] . "</td> 
      <td>" . $row['OHP'] . "</td> 
      <td>" . $row['wheelchairAccess'] . "</td> 
      <td>" . $row['lectureCapture'] . "</td> 
      <td><input type='radio' name='radioSelect' value= '". $row['roomCode']."'></td> 
     </tr>"; 
    } 

    echo " 
      <tr> 
       <td colspan='".count($colheaders)."'><input type='submit' name='ttroom' id='ttroom' name='ttroom'></td> 
      </tr> 
     </table> 
    </form>"; 

?> 
0

Вот способ сделать это динамически.

внутри вашего while петли, используйте if для проверки существования несуществующего переменной. Затем установите этот переменный внутри if. Таким образом, вы идете только в if первый раз через петлю. Тогда, внутри if, вы можете зацикливать свой первый $row и использовать его ключи как свою колоду млн названий заголовков:

<?php 
$numeroOption= $_POST['numero']; 
$roomtype= $_POST['roomtype']; 
$selectOption = $_POST['parkname']; 
$query = "SELECT * FROM `ROOMS` WHERE `Capacity` < '$numeroOption' AND `Park` LIKE '$selectOption%' AND `dataProjector` LIKE '$proj_check%' AND `Whiteboard` LIKE '$white_check%' AND `OHP` LIKE '$ohp_check%' AND `WheelchairAccess` LIKE '$wheel_check%' AND `lectureCapture` LIKE '$cap_check%' AND `Style` LIKE '$roomtype%'"; 
$result = mysql_query($query); 
if ($result == FALSE) die ("could not execute statement $query<br />"); 
?> 
<form action="" method="post"> 
    <table> 
    <?php while ($row = mysql_fetch_array($result)) : ?> 
     <?php if (!isset($headersDone)) : $headersDone = true; ?> 
     <tr> 
      <?php foreach ($row as $key => $value) : ?> 
      <th><?php echo $key; ?></th> 
      <?php endforeach; ?> 
     </tr> 
     <?php endif; ?>      
     <tr> 
      <td><?php echo $row['roomCode']; ?></td> 
      <td><?php echo $row['Style']; ?></td> 
      <td><?php echo $row['dataProjector']; ?></td> 
      <td><?php echo $row['Whiteboard']; ?></td> 
      <td><?php echo $row['OHP']; ?></td> 
      <td><?php echo $row['wheelchairAccess']; ?></td> 
      <td><?php echo $row['lectureCapture']; ?></td> 
      <td><input type="radio" name="radioSelect" value="<?php echo $row['roomCode']; ?>"></td> 
     </tr> 
    <?php endwhile; ?> 
     <input type="submit" name="ttroom" id="ttroom" name="ttroom"> 
    </table> 
</form> 

Вы также заметите, что я переформатирован кучу вашего смешанного PHP/HTML кода. Просто мое мнение, но я думаю, что это может быть сделано, чтобы выглядеть намного более чистым, вырвавшись из тегов <?php ?> вместо связки echo. PHP alternative syntax for control structures хорош для этого сценария

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