用PHP搜索MySQL [英] Searching MySQL with PHP

查看:75
本文介绍了用PHP搜索MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一个项目,我希望一个人在文本框中输入任何艺术家/乐队的名称,该文本框将在我的mysql数据库中获取事件信息并在另一页上显示结果/内容.下面的代码在我的index.php中,它应该从search.php获取信息(也在下面).我到处都是,我不确定为什么它不起作用,我不知道该怎么办.帮助将是巨大的! (我真的需要通过这堂课!):)

I am doing a project where I want a person to enter the name of any artist/band into a text box where it will seach my mysql database for the event information and display the results/content on another page. The code below is within my index.php where it should get the information from search.php (below also). I've looked all over and I'm not sure why it's not working and I can't figure out what to do. Help would be great! (I really need to pass this class!) :)

(index.php)

(index.php)

<form name="search" action="search.php" method="get">
    <div align="center"><input type="text" name="q" />
    <p><input type="submit" name="Submit" value="Search" /></p>
</form>

(search.php)

(search.php)

<?php

//Get the search variable from URL

$var=@&_GET['q'];
$trimmed=trim($var); //trim whitespace from the stored variable

//rows to return
$limit=10;

//check for an empty string and display a message.
if($trimmed=="")
    {
    echo"<p>Please enter a name.</p>";
    exit;
    }

//check for a search parameter
if(!isset($var))
    {
    echo"<p>We don't seem to have a search parameter!</p>";
    exit;
    }

//connect to database
mysql_connect("localhost","root","password");

//specify database
mysql_select_db("itour") or die("Unable to select database");

//Build SQL Query
$query = "select * from events where artist_name like \"%trimmed%\" order by date";

$numresults=mysql_query($query);
$numrows=mysql_num_rows(numresults);

//If no results, offer a google search as an alternative

if ($numrows==0)
    {
    echo"<h3>Results</h3>";
    echo"<p>Sorry, your search: &quot;" .$trimmed . "&quot; returned zero results</p>";

    //google
    echo"<p><a href=\"http://www.google.com/search?q=".$trimmed . "\" target=\"_blank\" title=\"Look up ".$trimmed ." on Google\">
    Click here</a> to try the search on google</p>";
    }

//next determine if s has been passed to script, if not use 0
if(empty($s)) {
    $s=0;
    }

//get results
$query .=" limit $s,$limit";
$result = mysql_query($query) or die("Couldn't execute query");

//display what was searched for
echo"<p>You searched for: &quot;" .$var . "&quot;</p>";

//begin to show results set
echo "Results";
$count = 1 + $s;

//able to display the results returned
while ($row=mysql_fetch_array($result)) {
$title = $row["artist_name"];

echo"$count.)&nbsp;$title";
$count++;
}

$currPage = (($s/$limit) + 1;

echo"<br  />";

//links to other results
if ($s>=1){
    //bypass PREV link if s is 0
    $prevs=($s-$limit);
    print"&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\">&lt;&lt;
    Prev 10</a>&nbsp;&nbsp;";
}

//calculate number of pages needing links
$pages = intval($numrows/$limit);

//$pages now contains int of pages needed unless there is a remainder from diviison

if($numrows%$limit){
//has remainder so add one page
$pages++;
}

//check to see if last page
if (!((($s+$limit)/$limit)==$pages) && $pages!=1){

//not last page so give NEXT link
$news = $s+$limit;

echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 &gt;&gt;</a>";
}

$a = $s +($limit);
if($a > $numrows){$a = $numrows;}
$b = $s + 1;
echo "<p>Showing results $b to $a of $numrows</p>";

?>

推荐答案

您缺少$符号.我认为

$var=@&_GET['q'];

应该是

$var=@$_GET['q'];

除非您真的想要引用,在这种情况下应该是这样:(如果需要引用,此时不需要进行错误抑制,但是您应在尝试访问$ var之前检查$ var的设置)

unless you really want a reference, in which case it should be this: (the error suppression is not needed at this point if you want a reference, but you should check $var is set before trying to access it)

$var=& $_GET['q'];

我很想像这样写它.

if (!isset($_GET['q'])) {
    echo"<p>We don't seem to have a search parameter!</p>";
    exit;
}

$trimmed = trim($_GET['q']);

if($trimmed=="") {
    echo"<p>Please enter a name.</p>";
    exit;
}

这篇关于用PHP搜索MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆