2014-02-15 111 views
-1

我正试图搜索数据库中的一些数据并将其显示出来。这是我必须输入搜索条件的html表单代码。从SQL数据库中搜索并显示数据

<h2> Search </h2> 
<form action = "search.php" method = "post" > 
    Search for: <input type = "text" name ="find" /> in 
    <select NAME = "field"> 
    <Option VALUE = "Animal Type"> Animal Type</option> 
    <Option VALUE = "latitude"> Latitude</option> 
    <Option VALUE = "longitude"> longitude</option> 
    <Option VALUE = "dateseen"> Date Required</option> 
    <Option VALUE = "timeseen"> Time</option> 
    </select> 
    <inpput type= "hidden" name = "searching" value ="yes"/> 
    <inpput type= "submit" name = "search" value ="Search"/> 
</form> 

这是我使用的php代码。但我一直刚开了错误的路线18/22和

mysql_fetch_array说未定义的变量()预计参数1是资源

错误。有任何想法吗?

<?php 

if ($searching=="yes") 
    {echo "<h2> Results</h2><p>"; 
    } 

if ($find=="") 

{echo "<p> Please enter a search iten"; 
exit; 

} 

$link=mysqli_connect("localhost","root",""); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$db_selected = mysqli_select_db($link,"Animal_Tracker"); 

if (!$db_selected) 
    { 
    die ("Can\'t use test_db : " . mysqli_error()); 
    } 

$find = strtoupper($find); 
$find = strip_tags($find); 
$find = trim($find); 

$sql=mysql_query("Select * FROM Animal_Tracker WHERE upper($field) LIKE '%$find%' "); 

while($result = mysql_fetch_array($sql)) 
{ 
    echo $result ['Animal Type']; 
    echo " "; 
echo $result ['latitude']; 
echo "<br> "; 
echo $result ['longitude']; 
echo " <br>"; 
echo $result ['dateseen']; 
echo " <br> "; 
echo $result ['timeseen']; 
echo "<br> "; 
echo "<br> "; 
} 
+1

您使用一个变量叫'$ field'在您的SQL查询,但你不随地定义它。 – David

+2

你正在做一个mysqli连接并执行mysql_ *函数.. –

回答

1

我设法让你的代码工作。你混合mysql和mysqli(我不确定这是否是问题)。

好的做法是检查你的mysql_query是否成功并打印信息。不要忘了使用自己的字段名(我创建了一个测试数据库)

<?php 


$link=mysqli_connect("localhost","root",""); 

if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$db_selected = mysqli_select_db($link, "Animal_Tracker"); 


if (!$db_selected){ 
     die("Couldn't select database $db ".mysqli_error($link)); 
} 


$sql=mysqli_query($link, "Select * FROM location"); 

if ($sql == FALSE) 
{ 
    die($sql." Error on query: ".mysqli_error($link)); 
} 

while($result = mysqli_fetch_array($sql)) 
{ 
    echo $result ['x']; 
    echo " "; 
    echo "<br> "; 
} 
+0

谢谢你这有帮助,但你能告诉我如何使用代码的前六行。我如何定义$ find和$ search,以便它也可以访问HTML代码?否则,即使我没有输入任何信息,它也会显示数据库中的所有数据。 – user3293736

+1

当然,看看这里http://stackoverflow.com/questions/17139501/using-post-to-get-select-option-value - 从-HTML。与其合作是一个非常普遍的问题。 – VonSchnauzer