2016-04-18 4 views
-1

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

До сих пор мне удалось создать базу данных на моей машине, создать несколько таблиц, вставить некоторые данные в таблицу и создать страницу PHP, которую я могу использовать для выдачи запроса. Мне удалось получить желаемый запрос, но я понятия не имею, как сделать его красивым, в таблице, а также отобразить имена столбцов. Также я не уверен, как обрабатывать информацию о случайных таблицах, так как мой код жестко запрограммирован для конкретной таблицы. Вот мой PHP-код.

<html> 
<head><title>PHP MYSQL</title></head> 
<body> 


<form action="." method="GET"> 
<textarea name="query" cols="60" rows="8"></textarea><br /> 
<input type="submit" value="Submit" /> 
</form> 



<?php 



DEFINE('DB_USER', 'cs143'); 
DEFINE('DB_PASSWORD', 'password'); 
DEFINE ('DB_HOST', 'localhost'); 
DEFINE ('DB_NAME', 'TEST'); 

$db_connection = mysql_connect("localhost", "cs143", "") 
OR die("could not connect to databaseaaa !!!"); 

mysql_select_db("TEST", $db_connection); 

$query = $_GET[query]; 
$rs = mysql_query($query, $db_connection); 

if(!$rs) 
{ 
    die("Query failed"); 

} 


while($row = mysql_fetch_row($rs)) 
{ 
    $name = $row[0]; 
    $age = $row[1]; 
    print "$name, $age<br />"; 
} 

?> 

</body> 
</html> 

ответ

0
<table> 
    <th> 
     <td>Name</td> 
     <td>Age</td> 
    </th> 
    <?php while($row = mysql_fetch_row($rs)) { ?> 
     <tr> 
      <td><?php echo $row[0]; ?></td> 
      <td><?php echo $row[1]; ?></td> 
     </tr> 
    <?php } ?> 
</table> 
+0

Прохладный, поэтому я могу использовать таблицу HTML для отображения данных. Но как его отобразить, если у моей таблицы есть произвольное количество столбцов, например? Нужно ли мне для этого функция mysql_num_fields? –

+0

, конечно, вы можете использовать html с php .. если у вас есть другой столбец, то используйте ту же функцию, а затем создайте новую '' и' echo $ row [n] '. –

+0

Моя проблема в том, что этот код по-прежнему будет жестко запрограммирован. У меня много таблиц, и мне нужно, чтобы пользователь мог ввести желаемый запрос в текстовое поле и получить результат обратно из произвольной таблицы с произвольным количеством столбцов. –

0

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

<h2>Query result:</h2> 

    <html><body><table border=1 cellspacing=1 cellpadding=2><tr align="center"> 

<?php 

    //print out first row of header fields 
    $i = 0; 
    while($i < mysql_num_fields($rs)) 
    { 
     //meta holds column information (name, description, etc.) 
     $meta = mysql_fetch_field($rs, $i); 
     //output column names along with bold HTML tags via echo 
     echo '<td><b>' . $meta->name . '</b></td>'; 
     $i = $i + 1; 
    } 
?> 


<?php 

    //print out the actual query results 
    $i = 0; 
    while($row = mysql_fetch_row($rs)) 
    { 
     echo '<tr align="center">'; 
     $count = count($row); 
     $y = 0; 
     while($y < $count) 
     { 
      $c_row = current($row); 

      //if any value is NULL (blank), replace it with N/A 
      if($c_row==NULL) 
       echo '<td>N/A</td>'; 
      else 
       echo '<td>' . $c_row . '</td>'; 

      next($row); 
      $y = $y + 1; 
     } 
     echo '</tr>'; 
     $i = $i + 1; 
    } 
?> 
Смежные вопросы