php 从 SQL 数据库中搜索和显示结果
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/15289048/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Search and display results from SQL database
提问by Marc Jones
I have an MySQL database and I need to search for either the transaction number (and it shows me my name, email and item_name) or search for my email address AND name AND date of purchase which will then give me my transaction number and item_name - I don't want anything to come up unless email, name and date of purchase are all correct.
我有一个 MySQL 数据库,我需要搜索交易号(它会显示我的姓名、电子邮件和 item_name)或搜索我的电子邮件地址、姓名和购买日期,然后我会得到我的交易号和 item_name -除非电子邮件、姓名和购买日期都正确,否则我不希望出现任何内容。
Fields in my database are:
我的数据库中的字段是:
iname
iemail
itransaction_id
item_name
Could someone please help.... this is what i currently have....
有人可以帮忙....这是我目前拥有的....
<html>
<head>
<title>Search</title>
</head>
<body bgcolor=#ffffff>
<h2>Search</h2>
<form name="search" method="post" action="findme.php">
Seach for: <input type="text" name="find" />
<input type="submit" name="search" value="Search" />
</form>
</body>
</html>
saved as findme.html
保存为 findme.html
next:
下一个:
<html>
<head><title>Searching for a student...</title>
</head>
<body bgcolor=#ffffff>
<?php
echo "<h2>Search Results:</h2><p>";
//If they did not enter a search term we give them an error
if ($find == "")
{
echo "<p>You forgot to enter a search term!!!";
exit;
}
// Otherwise we connect to our Database
mysql_connect("xxxx.com", "xxxx", "xxxxpw") or die(mysql_error());
mysql_select_db("xxxx") or die(mysql_error());
// We perform a bit of filtering
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
//Now we search for our search term, in the field the user specified
$iname = mysql_query("SELECT * FROM ibn_table WHERE upper($field) LIKE'%$find%'");
//And we display the results
while($result = mysql_fetch_array( $iname ))
{
echo $result['firstname'];
echo " ";
echo $result['lastname'];
echo "<br>";
echo $result['idnumber'];
echo "<br>";
echo "<br>";
}
//This counts the number or results - and if there wasn't any it gives them a little message explaining that
$anymatches=mysql_num_rows($iname);
if ($anymatches == 0)
{
echo "Sorry, but we can not find an entry to match your query...<br><br>";
}
//And we remind them what they searched for
echo "<b>Searched For:</b> " .$find;
//}
?>
</body>
</html>
Which is saved as findme.php
保存为 findme.php
This is the error im currently getting:
这是我目前得到的错误:
Search Results:
搜索结果:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /hermes/bosweb25a/b409/ipg.bexgroupcouk/silverliningnetworks/Database/findme.php on line 31
警告:mysql_fetch_array():在第 31 行的 /hermes/bosweb25a/b409/ipg.bexgroupcouk/silverliningnetworks/Database/findme.php 中提供的参数不是有效的 MySQL 结果资源
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /hermes/bosweb25a/b409/ipg.bexgroupcouk/silverliningnetworks/Database/findme.php on line 43 Sorry, but we can not find an entry to match your query...
警告:mysql_num_rows():在第 43 行的 /hermes/bosweb25a/b409/ipg.bexgroupcouk/silverliningnetworks/Database/findme.php 中,提供的参数不是有效的 MySQL 结果资源 抱歉,我们找不到与您的查询匹配的条目...
Searched For: CARYS
搜索: CARYS
回答by Mario Wenig
SELECT * FROM ibn_table WHERE itransaction_id LIKE '%$find%'
Note the space between LIKE and '%$find%'
SELECT * FROM ibn_table WHERE itransaction_id LIKE '%$find%'
注意 LIKE 和 '%$find%' 之间的空格
回答by dp4solve
i have tri for you just check it..
我有tri给你检查一下..
<html>
<head><title>Searching for a student...</title>
</head>
<body bgcolor=#ffffff>
<?php
include "config.php";
echo "<h2>Search Results:</h2><p>";
if(isset($_POST['search']))
{
$find =$_POST['find'];
//If they did not enter a search term we give them an error
if ($find == "")
{
echo "<p>You forgot to enter a search term!!!";
exit;
}
// Otherwise we connect to our Database
// We perform a bit of filtering
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
//Now we search for our search term, in the field the user specified
$iname = mysql_query("SELECT * FROM ibntable WHERE name LIKE'%$find%'")
or die(mysql_error());
//And we display the results
while($result = mysql_fetch_array( $iname ))
{
echo "id :" .$result['fname'];
echo "<br> ";
echo "name :".$result['lname'];
echo "<br>";
echo "name :".$result['middlename'];
echo "<br>";
echo "<br>";
}
//This counts the number or results - and if there wasn't any it gives them a little message explaining that
$anymatches = mysql_num_rows($iname);
if ($anymatches == 0)
{
echo "Sorry, but we can not find an entry to match your query...<br><br>";
}
//And we remind them what they searched for
echo "<b>Searched For:</b> " .$find;
//}
}
?>
</body>
</html>
回答by Dominic
Just as a follow-up, I had this same error (php scripts displaying as text) and the way I fixed it is I checked the web address I was using for my webpages (this assumes I was running my WAMP from my local computer).
作为后续行动,我遇到了同样的错误(php 脚本显示为文本),我修复它的方法是检查我用于网页的网址(假设我从本地计算机运行 WAMP) .
You should access your pages through the 'localhost/somewebpage.html' format rather than the 'file:///C:/wamp/www/somewebpage.html' format. If you go to your www folder from the WAMP server menu in the sytem tray and double click the html page you are trying to run, it will open up to the 'file:///C:/wamp/www/somewebpage.html' format.
您应该通过“localhost/somewebpage.html”格式而不是“file:///C:/wamp/www/somewebpage.html”格式访问您的页面。如果您从系统托盘中的 WAMP 服务器菜单转到您的 www 文件夹并双击您尝试运行的 html 页面,它将打开“file:///C:/wamp/www/somewebpage.html” ' 格式。
As is obvious, the way around this is to open a browser and manually type "localhost/somewebpage.html" to view the webapge. Running it that way forces it to run through your Apache server which can process the php. Running it the other way forces the page to run entirely from the browser and your web browser is not a webserver so it handles the php script as plain text and displays it on your page.
很明显,解决这个问题的方法是打开浏览器并手动输入“localhost/somewebpage.html”来查看网页。以这种方式运行它会强制它通过可以处理 php.ini 文件的 Apache 服务器运行。以另一种方式运行它会强制页面完全从浏览器运行,而您的网络浏览器不是网络服务器,因此它将 php 脚本作为纯文本处理并将其显示在您的页面上。

