7

mySQL データベースからデータを取得して HTML テーブルに入れようとしています。インターネットでたくさん検索した後、自分に合ったコードが見つかりませんでした。

現在、私はこのコードを持っています

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <td>Naam</td>
                <td>Gemeente</td>
                <td>Datum</td>
            </tr>
        </thead>
        <tbody>
       <?php
          $db_select = mysql_select_db($dbname,$db);
            if (!db_select) {
                die("Database selection also failed miserably: " . mysql_error());
            }
            mysql_select_db("databaseiheko");
            $results = mysql_query("SELECT NaamFuif, GemeenteFuif, DatumFuif FROM tblfuiven");
            while($row = mysql_fetch_array($results)) {
            ?>
                <tr>
                    <td><?php echo $row['NaamFuif']?></td>
                    <td><?php echo $row['GemeenteFuif']?></td>
                    <td><?php echo &row['DatumFuif']?></td>
                </tr>

            <?php
            }
            ?>   
            </tbody>
            </table>
</body>
</html>

私が得る唯一のものは、テーブルの最初の行 (Naam-Gemente-Datum) です。私は何か間違ったことをしていますか、それとも何かを忘れていましたか?

4

3 に答える 3

4

まず第一に、心に留めておくべき最も重要なことは次のとおりです。

非推奨で安全でないコードを使用しています

mysql_関数は、さまざまな理由から、強くお勧めしません:

  • 非推奨であり、PHP の将来のバージョンでは削除される予定です。
  • SQL インジェクションの可能性につながる安全でない、
  • より新しいバージョンの PHP に存在する多くの機能がない

より詳細な説明については、リンクされた質問を参照してください。

さて、コード自体に:

mysql_connectサーバーへの接続に使用していません

mysql_connectデータベース内のデータにアクセスするために使用されるサーバー、ユーザー名、およびパスワードを指定するために使用する必要があります。あなたのコードから、関数で変数が使用されているが、適切に初期化されておらず、他の場所で再び使用されていないため、存在するはずだったようです。$dbmysql_connect

mysql_connect次のような方法で使用する必要があります。

$db = mysql_connect('localhost', $user, '$password');
もし (!$db) {
    die('接続されていません:' .mysql_error());
}

(ユーザー名とパスワードの設定をお忘れなく!)

あなたはmysql_select_db続けて2回使用しています:

    $db_select = mysql_select_db($dbname,$db);
        if (!db_select) {
            die("データベースの選択も惨めに失敗しました: " . mysql_error());
        }

に続く

mysql_select_db("databaseiheko");

  1. $dbnameおよび変数に注意$dbしてください。コードにそれらがないと、この関数はこのようには機能しません。
  2. 2 番目mysql_select_dbは最初のものを上書きしますが、使用するサーバー接続を指定しません。

最初のバージョンを使用する必要がありますが、そのmysql_connect前に使用する必要があります。

コードにタイプミスがあります

  • if (!db_select) {する必要がありますif (!$db_select) {
  • echo &row['DatumFuif']する必要がありますecho $row['DatumFuif']
于 2013-01-27T15:06:27.080 に答える
2

mysql_ 関数は非推奨ですが、それらを使用したい場合は、次の修正をお勧めします。

この方法でコードを修正できます。mysql 接続が必要です。

 <?php
 //connect to your database
 mysql_connect("serverIpAddress","userName","password");
 //specify database
 mysql_select_db("yourDatabaseName") or die;
 //Build SQL Query
 $query = "select * from tblfuiven";
 $queryResult=mysql_query($query);
 $numrows=mysql_num_rows($queryResult);

numrows には、データベースで見つかったレコードの数が含まれます。行数のエコーを追加し、行数がまだ 1 であるかどうかをお知らせください。次に、mysql_fetch_assoc を使用して行を取得します。

  while($row = mysql_fetch_assoc($queryResult)) {
        ?>
            <tr>
                <td><?php echo $row['NaamFuif']?></td>
                <td><?php echo $row['GemeenteFuif']?></td>
                <td><?php echo &row['DatumFuif']?></td>
            </tr>
        <?php

        }
        ?>

編集: このコードを使用して、コードをテストし、取得した行数をお知らせください (実際のユーザー名とパスワードとデータベース名を書きます:

         <?php
         mysql_connect("localhost","root","root");     
         mysql_select_db("databaseName") or die;
            $results = mysql_query("SELECT * FROM tblfuiven");
            $numrows=mysql_num_rows($queryResult);
           while($row = mysql_fetch_assoc($queryResult)) {
            ?>
                <tr>
                    <td><?php echo $numrows ?></td>
                    <td><?php echo $row['NaamFuif']?></td>
                    <td><?php echo $row['GemeenteFuif']?></td>
                    <td><?php echo $row['DatumFuif']?></td>
                </tr>

            <?php
           }
           ?>
于 2013-01-27T14:31:18.117 に答える