-3

PHP で特定のレコードを表示できません。これは私のコードです:

<?php

session_start();
$name = $_SESSION['MM_Username'];
mysql_connect("localhost","abc","sar");
mysql_select_db("abc");
$query = mysql_query("select * from employee WHERE username = '$name'");

while($row = mysql_fetch_row($query));
{ 
  echo $row['employee_id'];
}   

?>

これでは何も表示されません。私は何を間違っていますか?

4

5 に答える 5

6

使用しmysql_fetch_rowている数値配列を返します。mysql_fetch_assocたとえば、を使用する必要があります。

while($row = mysql_fetch_assoc($query))
{ 
  echo $row['employee_id'];
} 

両方のドキュメントを読んでください。

http://php.net/manual/en/function.mysql-fetch-row.php

http://www.php.net/manual/en/function.mysql-fetch-assoc.php

注: また、警告を無視しないでください。PDO または mysqli の使用を開始します。

于 2013-07-03T13:51:01.303 に答える
0

最初にエラー報告を有効にします:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

次に、以下のコードに従ってください。

<?php
session_start();
$name = $_SESSION['MM_Username'];

mysql_connect("localhost","abc","sar") or die("No Connection"); //Add or die() to record any error if connection is failed
mysql_select_db("abc") or die("can't select");

$query = mysql_query("select * from `employee` WHERE username = '".$name."'") or die("Wrong query"); //makesure table name with backtick eg: `tablename`

while($row = mysql_fetch_array($query));  //also can use : mysql_fetch_assoc($query)
{ 
  echo $row['employee_id']; //print output
}   
?>
  1. エラー報告を有効にする
  2. or die()失敗したかどうかを確認するために追加
  3. テーブル名には常にバッククォートを使用してください。なんで?ここをチェック
  4. 使ってみmysql_fetch_array($query)たり mysql_fetch_assoc($query)
  5. mysql_*そして、今後は使用しないでください。なんで ?ここをチェック
于 2013-07-03T13:50:49.137 に答える
0

あなたの仕事をデバッグしましたか?$_SESSION['MM_Username']; を行います。何か入っていますか?print_r($_SESSION); を試してください。確かめる。

クエリだけをエコーし​​、データベースで直接テストして、期待される結果が表示されることを確認することもできます。

これを実行してもまだ機能しない場合: 詳細情報を提供してください。

于 2013-07-03T13:46:12.070 に答える
0
<?php
session_start();
$name=$_SESSION['MM_Username'];
mysql_connect("localhost","abc","sar");
mysql_select_db("abc");
$query = "select * from employee WHERE username =  '$name';";
$result = mysql_query($query)or die(mysql_error());    
while($row = mysql_fetch_assoc($result));
{ 
echo $row['employee_id'];
}   
?>

またはそのようなもの

于 2013-07-03T13:48:09.567 に答える
0

mysql_fetch_array($query, MYSQL_ASSOC)も使用できますが、mysql_ は廃止されたため、mysqli_fetch_array($result, MYSQL_ASSOC)を使用してください。

将来、コードに問題が発生した場合は、デバッグの理由で関数var_dump()を呼び出してください。または、php.ini ファイルで xdebug を設定し、環境ツール (NetBeans など) に接続することもできます。

NetBeans と xdebug に興味がある場合は、このリンクにアクセスしてください。

于 2013-07-03T15:42:14.300 に答える