2017-02-27 95 views
1

我將我的代碼連接到完全連接的數據庫。但是,當我在運行查詢後回顯來自數據庫的某些數據時,echo語句不起作用。echo語句在php中的while循環中不起作用

<?php 

mysql_connect("localhost","root",""); 
mysql_select_db("search"); 
if(isset($_GET['search'])){ 
    $get_value = $_GET['user_query']; 
    $result_query = "select * from sites where site_keywords= '%$get_value%' "; 
    $run_results=mysql_query($result_query);   
    $site_val=$_GET['user_query']; 
    echo "<div class='results'> $site_val </div>";  
    while($row_result=mysql_fetch_array($run_results)){ 

     $site_title=$row_result['site_title']; 
     $site_link=$row_result['site_link']; 
     $site_keyword=$row_result['site_keywords']; 
     $site_desc=$row_result['site_desc']; 
     $site_image=$row_result['site_image']; 

     echo'value="'.$row["site_title"].'"'; 
     echo "<div class='results'> 
      <h2> $site_title </h2> 
      <a href='site_link' target='_blank'>$site_link</a>  
      <p align='justify'>$site_desc</p>   
      <img src='images/$site_image' width='100' height='100' />   
     </div>"; 
     } 
    } 
?> 

此回聲聲明正在工作,因爲這$ site_val沒有從數據庫獲取任何數據。

$ run_results = mysql_query($ result_query);

以下兩個echo語句不工作..

echo'value="'.$row["site_title"].'"'; 
echo "<div class='results'> 
<h2> $site_title </h2> 
<a href='site_link' target='_blank'>$site_link</a> 
<p align='justify'>$site_desc</p>   
<img src='images/$site_image' 
width='100' height='100' />   
</div>"; 
+1

至少使它好看 –

+2

如果你不能打擾,使您的代碼示例可讀。 ___爲什麼我們應該打擾讀它____你不能調試你無法讀取的代碼 – RiggsFolly

+3

每次你使用[mysql_'](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in -php) 新代碼中的數據庫擴展 ** [一隻小貓被勒死在世界的某個地方](http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg) **它被棄用並且已經使用了多年,並且在PHP7中永遠消失了。 如果您只是學習PHP,花費精力學習'PDO'或'mysqli'數據庫擴展和準備語句。 [從這裏開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

回答

1

你在下面的代碼

echo'value="'.$row["site_title"].'"'; 
     echo "<div class='results'> 
     <h2> $site_title </h2> 
     <a href='site_link' target='_blank'>$site_link</a> 
     <p align='justify'>$site_desc</p> 
     <img src='images/$site_image' 
width='100' height='100' />   </div>"; 

使用$row但是你用$row_result填充數據。使用$row$row_result代替

+0

改變echo'value =「'。$ row [」site_title「 ] '「'。 into echo'value =「'。$ row_result [」site_title「]。'''; –

+0

只要檢查一下例外情況。將代碼放在try - > catch塊內的「while」循環中並打印該異常。 '嘗試{/ *代碼內while循環去這裏* /} catch(Exception $ e){echo $ e-> getMessage(); }' – Arun

0

變化

echo'value="'.$row["site_title"].'"'; 

echo'value="'.$row_result["site_title"].'"'; 

或者

echo'value=$site_title'; 

還建議您使用mysqli或PDO,因爲mysql現在已折舊。

+0

前兩個是相同的,應該在最後一個例子中引用'value's的值。 – chris85

+0

我的錯誤。編輯 – Gateway