1

「songs」という名前の MySQL テーブルを単純に読み取り、「title」列を HTML に書き込もうとしています。MySQL を使い始めたばかりなので、なぜ動作しないのか説明できますか?

(単一列の) SQL テーブルは次のようになります。

+---------+
|  TITLE  |
+---------+
|  Hello  |
|  World  |
|  Table  |
|  Value  |
+---------+

PHPページで使用しているコードは次のとおりです

<ul>
    <?php
        $dbc = mysqli_connect('localhost', 'root', 'pass', 'music');
        $query = "SELECT title FROM songs";
        $result = mysqli_query($dbc, $query);
        $row = mysqli_fetch_array($result);
        while ($row = mysqli_fetch_array($result)) {
            echo '<li id="' . $row['title'] . '" data-title="' . $row['title'] . '">';
            echo '<img class="X" src="X.png" style="width: 14px; margin: 2px 0 -2px -4px; display: none;" />';
            echo '<span class="title">' . $row['title'] . '</span>';
            echo '</li>';
        }
    ?>
</ul>

出力はありません。

4

5 に答える 5

0
<ul>
    <?php
        $dbc = mysqli_connect('localhost', 'root', 'pass', 'music');
        $query = "SELECT title FROM songs";
        $result = mysqli_query($dbc, $query);
        //$row = mysqli_fetch_array($result);
        while ($row = mysqli_fetch_row($result)) {
            echo '<li id="' . $row['title'] . '" data-title="' . $row['title'] . '">';
            echo '<img class="X" src="X.png" style="width: 14px; margin: 2px 0 -2px -4px; display: none;" />';
            echo '<span class="title">' . $row['title'] . '</span>';
            echo '</li>';
        }
    ?>
</ul>

説明:

mysqli_fetch_array() は、結果セット全体を配列 (2 次元) で提供します。

mysqli_fetch_row() は、結果セットから 1 つのエントリを取得し、ポインターを前方に移動します。結果を数回反復する必要がある場合は良くありませんが、あなたの場合は問題ありません!

于 2013-09-15T19:04:04.197 に答える
0

前の要素に display: none があるので、出力はあるのに隠されているのではないでしょうか? 念のため、ブラウザから「ページソース」を確認してください:)

于 2013-09-15T19:04:41.553 に答える
0

これを試して:

<ul>
<?php
    $dbc = mysqli_connect('localhost', 'root', 'pass', 'music');
    $query = "SELECT title FROM `songs`";
    $result = mysqli_query($dbc, $query);
    //$row = mysqli_fetch_array($result); You don't need this
    while ($row = mysqli_fetch_array($result)) {
        echo '<li id="' . $row['title'] . '" data-title="' . $row['title'] . '">';
        echo '<img class="X" src="X.png" style="width: 14px; margin: 2px 0 -2px -4px;     display: none;" />';
        echo '<span class="title">' . $row['title'] . '</span>';
        echo '</li>';
    }
?>
</ul>

この行を見てください:

 $query = "SELECT title FROM `songs`";
于 2013-09-15T19:06:26.770 に答える
0

接続エラーの可能性を排除していただけますか:

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

また、すべての $row['title'] を次のように置き換えて、HTML で表示するために結果をエンコードしてください。

htmlspecialchars($row['title'])

HTML 部分は問題ないようです。そのため、while ループ内のコードでデバッグを試す必要があるかもしれません。

echo htmlspecialchars($row['title']); //only this within while loop

その後、何が間違っているかを知ることができます。

于 2013-09-15T19:07:04.707 に答える