PHP用字母搜索

时间:2016-02-24 13:07:33

标签: php html database

我是php的初学者,我需要一些帮助。 我在学校有这个任务,我需要在一个医院的网站上有字母表,所有的咨询都需要在点击它们开头的字母时出现。

我只用字母“a”尝试过,但我不行。我确信这很容易,但我已经在线搜索了一段时间,却找不到任何东西。

我感谢任何帮助。

提前致谢。

P.S。我的母语显然不是英语。

<HTML>
    <HEAD>
        <TITLE></TITLE>
    </HEAD>
<BODY>
    <p><a href="" name="searchCons">A </a>
    <a href="">B </a><a href="">C </a><a href="D"></a>
    <a href="">D </a><a href="">E </a><a href="">F </a>
    <a href="">G </a><a href="">H </a><a href="">I </a>
    <a href="">J </a><a href="">K </a><a href="">L </a>
    <a href="">M </a><a href="">N </a><a href="">O </a>
    <a href="">P </a><a href="">Q </a><a href="">R </a>
    <a href="">S </a><a href="">T </a><a href="">U </a>
    <a href="">V </a><a href="">W </a><a href="">X </a>
    <a href="">Y </a><a href="">Z </a><a href="">Everything</a></p>

    <?php
    if(isset($_POST['toon']))
    {
      include('dbconnect.php');

      if(!empty($_POST['searchCons']))
      {
        $type  = $_POST['searchCons'];
        $query = "SELECT * FROM consultaties WHERE Naam LIKE '%A%'";
        $res   = mysql_query($query,$cn) or die('Uitvoeren query mislukt');
        $count = mysql_num_rows($query);
        while($rij=mysql_fetch_array($res))
        echo $rij['Naam']."<BR>";    
       } 

      mysql_close($cn);
    }

    ?>
    </BODY>
</HTML>

3 个答案:

答案 0 :(得分:3)

写下你的链接:

<a href="?searchCons=A">A</a>

而不是使用POST,请使用GET:

$_GET['searchCons']

您现在可以将变量分配给GET数组并在查询中使用它:

$search = $_GET['searchCons'];

并在您的查询中:

WHERE Naam LIKE '%$search%'";

但是,这使您可以打开SQL注入。所以,你需要逃避这些数据。

即:

$search = mysql_real_escape_string($_GET['searchCons']);

旁注问题:$_POST['toon']做了什么?如果我正确理解您的代码,您可以删除if语句。

答案 1 :(得分:1)

POST适用于表单。由于您未在代码中使用任何表单,因此应使用GET。 GET也适用于表单,但有一种方法可以克服这种情况,因为GET在链接中发送数据。

所以你应该改变你的链接:

<a href="#"></a> 

(将#更改为filename.php?searchCons=A

因此您的代码应该与此类似:

<?php


      include('dbconnect.php');

      if(!empty($_GET['searchCons']))
      {
        $type  = $_GET['searchCons'];
        $query = "SELECT * FROM consultaties WHERE Naam LIKE '%A%'";
        $res   = mysql_query($query,$cn) or die('Uitvoeren query mislukt');
        $count = mysql_num_rows($query);
        while($rij=mysql_fetch_array($res))
        echo $rij['Naam']."<BR>";    
       } 

      mysql_close($cn);


    ?>


<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>

      <a href="?searchCons=A" >A </a>
      <a href="?searchCons=B">B </a>
      <a href="?searchCons=C">C </a>

</BODY>
</HTML>

答案 2 :(得分:0)

查看以下可能对您有帮助的链接 http://www.w3schools.com/php/php_ajax_livesearch.asp

check the link