2017-04-09 8 views
2

これは重複している場合、私は関連トピックを検索しましたが、いずれの回答も見つけられませんでした。私は作成したデータベースに対してSQLクエリを実行し、結果をHTMLボタンのクリックで表示することを検討しています。私は「顧客」テーブルからすべてのエンティティを選択するだけの簡単なシナリオから始めました。HTMLボタンを使用してSQLクエリを表示する

<?php 
define('DB_NAME', 'mis630db'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', ''); 
define('DB_HOST', 'localhost'); 

$link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
     die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if (!$db_selected) { 
     die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 

$resultset = mysql_query("SELECT * FROM Customer"); 
if($resultset->num_rows !=0) { 
    while($rows = $resultset->fetch_assoc()) 
    { 
     $idCustomer = $rows['idCustomer']; 
     $CustomerFName = $rows['CustomerFName']; 
     $CustomerLName = $rows['CustomerLName']; 
     $CustomerAddress = $rows['CustomerAddress']; 
     $CustomerPhone = $rows['CustomerPhone']; 
     $CustomerEmail = $rows['CustomerEmail']; 

     echo"<p> Customer ID: $idCustomer<br />Customer Name: $CustomerFName $CustomerLName<br />Customer Address: $CustomerAddress<br />Customer Phone: $CustomerPhone<br />Customer Email: $CustomerEmail</p>"; 
    } 
} 
else{ 
     echo "No results."; 
} 
?> 

私はこのエラーが発生したことをテスト:

」 お知らせ:Cで非オブジェクトのプロパティを取得しようとすると:\ xamppの\ htdocsに私はこれを実現するには、次のPHPコードを作成しました\ report.php on line 20 結果はありません。

なぜ私は複数の結果を返す必要があるのか​​分かりません。それが整理されたら、私は私が作成したさまざまなSQLクエリを実行するいくつかのボタンを持つことになり、結果を表示するHTMLボタンにこれを接続する:

<html> 
<head> 
    <title> Reports</title> 
</head> 
<body> 
<div class="header"> 
    <h1>Reports</h1> 
</div> 
<form action="report.php" method="post" /> 
    <table> 
    <tr> 
     <td><input type="submit" value="Customers" /><td> 
    </tr> 
</form> 
</body> 
</html> 

任意の洞察力をいただければ幸いです。

ありがとうございました。

+0

'var_dump($ resultset);'は何ですか?また、ちょうど始める場合は、PDOかmysqliを使うべきです。 – chris85

+0

似たような問題を抱えている他のユーザーを助ける正しい答え(正しいものが1つだった場合)を選択することを忘れないでください。回答が正しくない場合は、その解決方法を教えてください。 –

答えて

1

SQLクエリSELECT * FROM Customerが失敗しているように見えるため、$resultsetはオブジェクトではありません。おそらくnullです。

SQLテーブル、カラムなどは大文字と小文字が区別されます。テーブルの名前がCustomerで、customerではありませんか?

拡張子mysqlはPHP 5.5以降で廃止されており、PHP 7では削除されています。mysqliまたはPDO-MySQLを代わりに使用する必要があります。

+0

私はそれらが大文字と小文字を区別していて、テーブルが実際に小文字の "顧客"であることを知らなかったので、私はそれを修正しました。ありがとう!それは私の問題を解決していないようだと言いました。 – NinePoundHammer

1

変更この行:

if (mysql_num_rows($resultset) != 0) { 

if($resultset->num_rows !=0) { 

私はあなたがMySQLの結果オブジェクトから直接num_rows呼び出されるメソッドにアクセスすることができないと思うので。

そして、この行を変更:私はあなたがMySQLの結果オブジェクトから直接fetch_assoc呼び出されるメソッドにアクセスすることができないと思うので

while($rows = mysql_fetch_assoc($resultset)) 

while($rows = $resultset->fetch_assoc()) 

を。

さらに別のものに。 Mysql_関数は推奨されていませんmysqli_関数を代わりに使用するようにアドバイスします。 http://php.net/manual/en/book.mysqli.php

+0

フィードバックをいただきありがとうございます。私は実際にはmysqli_関数を使用していましたが、これをチュートリアルの後で変更して調整しませんでした。私は確かに今後もそれを続けます。私は参照されたコードを更新し、正しい方向に私を置くように見えます。このエラーが発生しました。 " 警告:mysqli_query()は少なくとも2つのパラメータを必要とし、1行目はC:\ xampp \ htdocs \ report.phpにあります。 警告:mysql_num_rows()は、 nullはC:\ xampp \ htdocs \ report.phpの20行目で与えられました 結果はありません。テーブルには20の別々のエントリと5つのフィールドがあるので、私は混乱しています。 – NinePoundHammer

+0

こんにちは、大丈夫ですので、mysqli_関数に切り替えた場合は、ドキュメントを読む必要があります。 mysqli_queryは、最初のパラメータがmysqliリンクであると想定しているためです。したがって、mysqli_query($ link、 "SELECT * FROM Customer")とタイプする必要があります。 mysql_関数が残っていないことを確認しなければなりません。mysqli_ –

関連する問題