2017-02-27 99 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