2012-10-24 5 views
5

私はPHPが初めてでPHPを使用してウェブサイトを構築しようとしています。私は結果をテストするためにlocalhostを持っており、phpmyadminはすでにWebサイトにインストールされています。mysqli_query、mysqli_fetch_array、whileループ

私が今しようとしているのは、データベース "ポータル"からテーブル "プロパティ"の内容をリストし、結果をテーブルに入力することです。

私はmysqli_query,mysqli_fetch_arrayとwhileループを使用しています。私は次のエラーを取得しています:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\falcon\portal\forms\edit listing.php on line 15

session_start(); 
require_once "connect_to_mysql.php"; // where i store username and password to access my db. 

$sqlCommand = "SELECT * property FROM portal"; // dbname: portal - table: propery 
$query = mysqli_query($myConnection, $sqlCommand); 

$Displayproperty = ''; 
while ($row = mysqli_fetch_array($query)) 
$id = $row["pid"]; 
$title = $row["ptitle"]; 
$area = $row["parea"]; 
$city = $row["pcity"]; 
$Displayproperty .= '<table width="500" border="0" cellspacing="0" cellpadding="1"> 
<tr> 
<td>' . $id . '</td> 
<td>' . $title . '</td> 
<td>' . $area . '</td> 
<td>' . $city . '</td> 
<td><a href="forms.php?pid=' . $id . '">Upload images</a><br /></td> 
</tr> 
</table>'; 

答えて

2

これであなたのクエリを置き換えを使用する必要があります。前にこの行を追加したことを確認してください。

$db = mysql_select_db('portal'); 

$sqlCommand = "SELECT * FROM property"; 
+0

ありがとう。エラーは消えましたが、データが表示されません。 – Omar

+0

良い。照会の後すぐにこの行を入力し、取得する行の数を確認してください。 echo $ totalRows = mysql_num_rows($ query); –

+0

while($ row = mysqli_fetch_array($ query))の後に中かっこはありません。 while($ row = mysqli_fetch_array($ query)){そしてテーブルタグの後でそれを終了する必要があります。 '; } –

1

問題はfalseを返すようにmysqli_query()を引き起こしているSQL文で構文エラーです。

SELECT * property FROM portalは有効なSQLではありません。

あなたはいつもmysqli_queryのような構築物で有効な結果を返すことを確認するためにチェックする必要があります:

$result = mysqli_query($myConnection, $sqlCommand); 
if(! $result) { 
    die("SQL Error: " . mysqli_error($myConnection)); 
} 

// use result here..... 
1

あなたのSQL文

SELECT * property FROM portal 

は、したがって、クエリは取得していない、正しいSQLではありません実行される。結果を得るには、propertyという単語を削除してみてください。

2

それは

$sqlCommand = "SELECT * FROM portal.property"; /* Database_Name.Table_Name */ 

それとも単に

$sqlCommand = "SELECT * FROM property"; 
+0

あなたがデータベース「ポータル」から 'portal.property' :-P –

+0

テーブル「プロパティ」を意味.. ISNそれ以外の方法で – eis

+0

@RocketHazmat haha​​それは混乱していたthnx:p –

4

あなたのクエリが間違っているので、

$query = mysqli_query($myConnection, $sqlCommand); 

$クエリの後に偽です。だからこそ、あなたはエラーを受け取ります。

正しいSQLクエリは次のとおりです。

SELECT * FROM portal.property 

データベース名を指定する必要がある場合。また 、前にやって:次に実行

$myConnection = new mysqli("localhost", "user", "password", "database"); 

を::

while ($row = mysqli_fetch_array($query)) 

あなたは$クエリが

if(!empty($query) { 
while ($row = mysqli_fetch_array($query)) { 
... 
1

は、あなたが最初に使用してDBポータルに接続する必要が存在してチェックする必要があります
$mysqli->query("SELECT * FROM property"); // This will run the query on portal database. 

Ifあなたは単にあなたが使用できるポータルのプロパティテーブルを照会する:

$mysqli->query("SELECT * FROM portal.property"); 

または

mysqli_query("SELECT * FROM portal.property");