2011-10-24 26 views
-2

如何從我的數據庫中獲取數據以顯示。我對PHP或MySQL不是很有經驗。來自數據庫的數據沒有顯示,HELP?

我沒有收到錯誤消息,但沒有數據顯示,所以我做錯了什麼?

PHP

<?php 
if(strlen(trim($_POST['search'])) > 0) { 

$search = "%" . $_POST["search"] . "%"; 
$searchterm = "%" . $_POST["searchterm"] . "%"; 

mysql_connect ("cust-mysql-123-03", "", ""); 
mysql_select_db ("weezycouk_641290_db1"); 
if (!empty($_POST["search_string"])) 
{ 

} 

$query = "SELECT name,lastname,email FROM contact WHERE name LIKE '%$search%' AND 
lastname  LIKE '%$searchterm%'"; 

$result = mysql_query ($query); 
echo mysql_error(); 
if ($result) { 
while ($row = mysql_fetch_assoc($result)) { 

echo $row["name"]; 
echo $row["lastname"]; 
echo $row["email"]; 
} ?> 


<?php echo $row["name"]; ?> 
<br> 
<?php echo $row["lastname"]; ?> 
<br> 
<?php echo $row["email"]; ?> 


<?php 
} 
} 
?> 

謝謝!

+0

回聲mysql_error();之後的mysql_query().. – halfdan

+0

我更新了我的問題PHP代碼與和使用。它在我的實際代碼,但仍然沒有 – James

+0

@James調試你的代碼。安裝調試器或在您的代碼中放置可變轉儲語句以追蹤其路徑。驗證每個條件滿足您的滿意度並向前邁進。 5分鐘的簡單調試可以解決這個問題,你要求人們在大海撈針中找到針。 –

回答

0

確保您正在執行的查詢返回記錄。你可以通過添加一個echo語句來檢查它,它將在你的屏幕上打印查詢。複製並運行它againist的database.You可以使用任何MySQL的前端工具(PHP myadmin,mysqlyog運行查詢,如果有查詢任何錯誤,你可以看到,那麼,

$query = "SELECT name,lastname,email FROM contact WHERE name LIKE '%$search%' AND 
lastname  LIKE '%$searchterm%'"; 
//the below line will print the query on the screen 
echo $query; 

$result = mysql_query ($query); 
+0

嗨,感謝您的幫助,但我收錄了它,什麼都沒有發生? – James

+0

在我們的新語句之前添加回聲「測試回聲」並查看是否打印「測試回聲」。你確定你正在檢查你改變的同一頁嗎?在兩行之間添加回聲,看看它在哪裏破碎。 – Shyju

1

它應該是這樣的:

<?php 
if(strlen(trim($_POST['search'])) > 0) { 

mysql_connect ("cust-mysql-123-03", "", ""); 
mysql_select_db ("weezycouk_641290_db1"); 

$query = "SELECT name,lastname,email FROM contact WHERE name LIKE '%" . mysql_real_escape_string($_POST['search']) . "%' AND lastname LIKE '%" . mysql_real_escape_string($_POST['searchstring']) . "%'"; 

$result = mysql_query ($query); 
echo mysql_error(); 
if ($result) { 
while ($row = mysql_fetch_assoc($result)) { 

echo $row["name"]; 
echo $row["lastname"]; 
echo $row["email"]; 
} ?> 


<?php echo $row["name"]; ?> 
<br> 
<?php echo $row["lastname"]; ?> 
<br> 
<?php echo $row["email"]; ?> 


<?php 
} 
} 
?> 

的mysql_real_escape_string是爲了防止MySQL的注入這是一個嚴重的風險

+0

感謝您的幫助,但沒有任何改變!我真的不確定發生了什麼事。沒有錯誤消息,我糾正他們和所有密碼,用戶,主機是正確的。爲什麼數據不會顯示在我的結果頁上? – James