1

私は mysqli を初めて使用し、単純なクエリを HTML テーブルに出力しようとしています。3 つの空白セルが返されますが、その中には何もありません。

私はこれを見つけるためにここを見回そうとしましたが、私の検索スキルが標準に達していない可能性があるため、他の誰もここで立ち往生していないか、スクワットを検索できません! とにかく、これは私のコードです:

<?php
$mysqli = new mysqli("localhost", "webuser", "mysecretpassword", "userdb");

/* check connection */
if ($mysqli->connect_errno)
{
  printf("Connect failed: %s\n", $mysqli->connect_error);
  exit();
}

/* Select queries return a resultset */
if ( $result = $mysqli->query("select first_name, last_name, last_activity_date from  users order by first_name" ) )
{
   $finfo = $result->fetch_fields();
   foreach ( $finfo as $val )
   {
      echo "<tr>\n";
      echo "<td>$val->first_name</td>\n";
      echo "<td>$val->last_name</td>\n";
      echo "<td>$val->last_activity_date</td>\n";
      echo "</tr>\n";
   }
   $result->close();
}

$mysqli->close();

?>

printf() を使用した他の例を見たことがありますが、古いデータベーストランザクションで以前にエコースタイルを使用していたため、C スタイルの printf に慣れていないため、その構文に慣れていません。

ここで何か助けていただければ幸いです。ありがとう!

4

3 に答える 3

2
if ( $result = $mysqli->query("select first_name, last_name, last_activity_date from worker order by first_name" ) )
{
     while ( $val = $result->fetch_object() )
     {
        echo "<tr>\n";
        echo "<td>" . $val->first_name . "</td>\n";
        echo "<td>" . $val->last_name . "</td>\n";
        echo "<td>" . $val->last_activity_date . "</td>\n";
        echo "</tr>\n";
     }
     $result->close();
}
于 2013-05-17T17:06:37.233 に答える
2

これを試して

foreach ( $finfo as $val )
{
  echo "<tr>\n";
  echo "<td>" . $val->first_name . "</td>\n";
  echo "<td>" . $val->last_name . "</td>\n";
  echo "<td>" . $val->last_activity_date . "</td>\n";
  echo "</tr>\n";
}
于 2013-05-17T16:24:26.593 に答える
0

foreach または while ループに関するものではありません。fetch_fields はクエリ結果を返しませんが、クエリ結果の列に関するメタデータ (名前、長さ、型など) を返します。

$val->first_nameこのオブジェクト メンバーが定義されていないため、PHP の警告も表示されるはずです。

于 2013-05-17T20:18:24.443 に答える