0

我有一个超过 10k 行随机名称 (names.txt) 的文本文件,以及一个包含用户信息 (user_info) 的数据库

user_info 数据库的结构类似于:

user_id, name,           email,             DoB,           gender

   1,    John,           email@email.com,   01/01/1990       M
   2,    Tim,            email2@email.com,   01/01/1991       M

等等..

我基本上想要实现的是使用 txt 文档进行名称搜索。

因此,当您上传文本文档时,如果其中的姓名为“Tim”,它将在 user_info 数据库中回显所有名为 Tim 的用户以及他们的电子邮件、出生日期和性别。

(我不知道该怎么做,但我猜是这样的)

<form action="search.php" method="post" >
                         <input type="hidden" name = "submit" value="Search" />
                </form>


 <?php

 $namestxt = file("/names.txt");

     if (isset($_POST['submit']))
{


      $getUsers = mysql_query("SELECT * FROM `user_info` WHERE `name` = '".$namestxt."'");

  while ($userInfo = mysql_fetch_assoc($getUsers))
  {

   echo $userInfo['name'].' . $userInfo['email'] . $userInfo['DoB']  . $userInfo['gender']<br/>';

  }


}


  ?>

我知道这段代码可能很遥远,但希望你能理解我在这里想要做什么。

任何帮助,谢谢。

4

3 回答 3

0

$namestxt是从您的文件中读取的字符串数组。您可以按索引寻址元素:($namestxt[0]文件中的第一行)。或者用foreach迭代它们。然后您可以编写一个 SQL 查询select * from user_info where name in('Name1','Name2')

于 2013-04-12T14:57:43.433 回答
0
$getUsers = mysql_query("SELECT * FROM user_info;");

while($userInfo = mysql_fetch_assoc($getUsers))
{
    if(in_array($userInfo['name'], $namestxt))
    {
        echo $userInfo['name'] . ' ' . $userInfo['email'] . ' ' . $userInfo['DoB'] . ' ' . $userInfo['gender'] . '<br />';
    }
    else
    {
        echo 'user not found';
    }
}
于 2013-04-12T15:08:25.900 回答
0

You need to convert that $snamestext, which is currently an array, into a comma separated string so you can use 'IN' in the query.

 $namestext = implode("'", $namestext);

 ......

 $getUsers = mysql_query("SELECT * FROM `user_info` WHERE `name` IN ('$namestxt')");

Also while echoing out the results you probably want to organize them in a table and check if that text file even exists before starting the process.

于 2013-04-12T15:12:33.040 回答