13

SQL データベースに、ID、名前、電子メール、大学、言語、経験のフィールドを持つテーブルがあります。SQL からデータをフェッチし、最新の 10 件の結果を出力する html テーブルを作成したいですか? どうすればいいですか?

これが非常に単純な質問でしたら申し訳ありません。私は PHP と SQL の知識がほとんどありません。

これは私が今持っているコードで、表ではなく名前を表示するだけです:

    <html>
    <head>
        <title>Last 5 Results</title>
    </head>
    <body>
        <?php
            $connect = mysql_connect("localhost","root", "root");
            if (!$connect) {
                die(mysql_error());
            }
            mysql_select_db("apploymentdevs");
            $results = mysql_query("SELECT * FROM demo");
            while($row = mysql_fetch_array($results)) {

                echo $row['Name'] . "</br>";


            ?>
    </body>
</html>
4

7 に答える 7

11

これは、テーブルを作成し、 phpmysqlの知識を深めるのに役立つものです。

また、接続ロジックとクエリをプロセスの最初に移動する必要があります。これにより、ページの読み込み中のエラーを回避し、mysql_error だけよりも正確なエラーを表示できます。

編集: ID が増加している場合は、ORDER BY 句を追加して、次のように
変更できますSELECT * FROM demo LIMIT 10SELECT * FROM demo LIMIT 10 ORDER BY id

<html>
    <head>
        <title>Last 10 Results</title>
    </head>
    <body>
        <table>
        <thead>
            <tr>
                <td>Id</td>
                <td>Name</td>
            </tr>
        </thead>
        <tbody>
        <?php
            $connect = mysql_connect("localhost","root", "root");
            if (!$connect) {
                die(mysql_error());
            }
            mysql_select_db("apploymentdevs");
            $results = mysql_query("SELECT * FROM demo LIMIT 10");
            while($row = mysql_fetch_array($results)) {
            ?>
                <tr>
                    <td><?php echo $row['Id']?></td>
                    <td><?php echo $row['Name']?></td>
                </tr>

            <?php
            }
            ?>
            </tbody>
            </table>
    </body>
</html>
于 2012-08-13T23:07:28.523 に答える
6

データベース内のデータを JSON にエンコードする必要があるオプション: http://www.jeasyui.com/documentation/datagrid.php

しかし、これはもっと有望に見えます: http://phpgrid.com/

于 2012-08-13T23:04:32.770 に答える
4

クエリ結果を呼び出すtable( $result );と、フィードする sql 配列のサイズに関係なく、html ベースのテーブルが生成されます。これが役立つことを願っています:)

<?php

function table( $result ) {
    $result->fetch_array( MYSQLI_ASSOC );
    echo '<table>';
    tableHead( $result );
    tableBody( $result );
    echo '</table>';
}

function tableHead( $result ) {
    echo '<thead>';
    foreach ( $result as $x ) {
    echo '<tr>';
    foreach ( $x as $k => $y ) {
        echo '<th>' . ucfirst( $k ) . '</th>';
    }
    echo '</tr>';
    break;
    }
    echo '</thead>';
}

function tableBody( $result ) {
    echo '<tbody>';
    foreach ( $result as $x ) {
    echo '<tr>';
    foreach ( $x as $y ) {
        echo '<td>' . $y . '</td>';
    }
    echo '</tr>';
    }
    echo '</tbody>';
}
于 2015-06-05T07:53:01.170 に答える
1

しばらく時間が経ちましたが、私は 2 セントを投入します: 関数を使用します (さらに良い - クラス)。mysql の結果からテーブルを作成することは、非常に一般的なタスクです。

<!DOCTYPE html>
<html>
    <head><title>Create Tables from MySQL using functions</title></head>
<body>
<?php
db_connect();
// assuming you have an auto increment id as the first column
$result = mysql_query("SELECT * FROM demo ORDER BY 1 DESC LIMIT 10");
print createTable(array_result($result));
?>
</body>
</html>

<?php 
/**
 * Quick mysql result function
 *
 * @param $result
 * @return array
 */
function array_result($result)
{
    $args = array();
    while ($row = mysql_fetch_assoc($result)) {
        $args[] = $row;
    }
    return $args;
}



/**
 * Connect to db
 * 
 * @param string $db_host
 * @param string $db
 */
function db_connect($db_host = "localhost", $db = "apploymentdevs")
{
    $connect = mysql_connect($db_host,"root", "root");
    if (!$connect) {
        die(mysql_error());
    }
    mysql_select_db($db);
}

/**
 * Create a table from a result set
 *
 * @param array $results
 * @return string
 */
function createTable(array $results = array())
{
    if (empty($results)) {
        return '<table><tr><td>Empty Result Set</td></tr></table>';
    }

    // dynamically create the header information from the keys
    // of the result array from mysql
    $table = '<table>';
    $keys = array_keys(reset($results));
    $table.='<thead><tr>';
    foreach ($keys as $key) {
        $table.='<th>'.$key.'</th>';
    }
    $table.='</tr></thead>';

    // populate the main table body
    $table.='<tbody>';
    foreach ($results as $result) {
        $table.='<tr>';
        foreach ($result as $val) {
            $table.='<td>'.$val.'</td>';
        }
        $table.='</tr>';
    }
    $table.='</tbody></table>';
    return $table;
}
于 2013-11-05T19:03:29.663 に答える
1

でフェッチすることに興味があるかもしれませんmysql_fetch_assoc()(連想配列でデータを取得するため:キー=>値)。キーには列名があります。したがって、各行について、各列を ( でarray_keys()) ループして、その値を出力できます。

$results = mysql_query("SELECT * FROM demo");
while($row = mysql_fetch_assoc($results)) {
    foreach (array_keys($row) as $column) {
        echo $row[$key] . "</br>";
    }
}

(その後、一度だけ設定される変数に array_keys($row) をキャッシュできます。これは、結果を実行している間、その値が変更されないためです。)

于 2012-08-13T23:18:47.090 に答える
0

HTMLでテーブルを作成する方法を知っていることを願っています.<table>, <tr> and <td>.

while ループでそれを使用してテーブルを修正し、"SELECT * FROM demo LIMIT 10"SQL クエリとして使用します。

于 2012-08-13T23:07:20.003 に答える