2012-10-24 27 views
5

Jestem nowy w PHP i staram się zbudować stronę za pomocą PHP. Mam localhost do testowania wyniku i mam zainstalowany phpmyadmin na stronie.mysqli_query, mysqli_fetch_array i pętla while

Co próbuję teraz zrobić, to wyświetlić zawartość "właściwości" mojej tabeli z bazy danych "portalu" i wypełnić tabelę z wynikami.

Używam mysqli_query, mysqli_fetch_array i pętli while. Dostaję następujący błąd:

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>'; 

Odpowiedz

2

Wymień zapytanie z tym. Upewnij się, że dodałeś już tę linię.

$db = mysql_select_db('portal'); 

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

Dzięki. Błąd zniknął, ale nie wyświetlają się żadne dane. – Omar

+0

Dobrze. Po zapytaniu natychmiast wpisz tę linię i sprawdź, ile otrzymujesz wierszy. echo $ totalRows = mysql_num_rows ($ query); –

+0

Po chwili nie ma się nawiasów klamrowych ($ row = mysqli_fetch_array ($ query)). Powinien to być while ($ row = mysqli_fetch_array ($ query)) {a następnie zakończyć go po tagu tabeli, '; } –

1

Kwestia jest błąd składni w instrukcji SQL, która jest przyczyną mysqli_query() do return false.

SELECT * property FROM portal nie jest prawidłowym językiem SQL.

Zawsze należy sprawdzić, aby upewnić się mysqli_query zwraca poprawny wynik konstruktem jak:

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

// use result here..... 
1

instrukcji SQL

SELECT * property FROM portal 

nie jest poprawne sql, więc kwerenda nie dostać wykonany. Spróbuj usunąć słowo property, aby uzyskać wyniki.

2

Powinno być

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

Albo po prostu użyć

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

To znaczy, 'portal.property' :-P –

+0

tabela "właściwość" z bazy danych "portal" .. ISN w inny sposób około – eis

+0

@RocketHazmat haha, który był mylący thnx: p –

4

Zapytanie jest źle, więc po

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

$ query jest fałszywe. Właśnie dlatego pojawia się błąd.

Prawidłowe zapytań SQL jest:

SELECT * FROM portal.property 

Jeśli trzeba podać nazwę bazy danych. Ponadto, przed wykonaniem:

while ($row = mysqli_fetch_array($query)) 

Należy sprawdzić, $ zapytanie istnieje

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

Musisz najpierw połączyć się z portalem DB przy użyciu:

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

Następnie uruchom:

$mysqli->query("SELECT * FROM property"); // This will run the query on portal database. 

Jeśli chcesz po prostu kwerendy tabelę nieruchomości w portalu można użyć:

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

lub

mysqli_query("SELECT * FROM portal.property"); 
Powiązane problemy