2011-03-03 66 views
0

对PHP很新颖,遇到了一些麻烦,并想知道是否有人可以提供帮助。我在查找数据库中的一组名称时遇到问题。当我只使用名称数组时,它会被正确处理。当我尝试阅读这些相同名称的文件时,只显示姓氏。我的问题是如何获得文件阵列显示的所有名称?将文件加载到数组中

请参阅下面的示例和代码。谢谢你的时间。

//This works -- Sample 1 
$x = array("joe", "paul", "tom"); 

//This does not -- Sample 2 
$x = file("name.txt"); //Same names from the array above are in this file 

以下是下面的完整代码。

<html> 
    <head> 
     <title>Name Check</title> 
    </head> 
    <body> 
     <?php 
      $con = mysql_connect("localhost", "xxxxxxxx", "xxxxxxxx"); 
      if (!$con) { 
       die('Could not connect: ' . mysql_error()); 
      } 

      mysql_select_db("xxxxxxxxxx", $con); 

      // $x=array("joe", "paul", "tom"); //displays all names correctly in Sample 1 below 
      $x = file("name.txt"); // only displays the last name in the file. Sample 2 below 

      foreach ($x as $test) { 
       $result = mysql_query("SELECT * FROM categories WHERE Name='$test' Limit 0, 1"); 

       while ($row = mysql_fetch_array($result)) { 
        echo $row['Name']; 
        echo " " . $row['Sport']; 
        echo "<br />"; 
       } 
      } 
     ?> 
    </body> 
</html> 

样品1输出

joe basketball 
paul basketball 
tom baseball 

样品2输出

tom baseball 

这里是内容name.txt,这是要求。谢谢!

joe 
paul 
tom 
+1

你能提供的示例文件内容是什么? – 2011-03-03 23:38:23

+0

请发布文件的格式。 – 2011-03-03 23:38:30

回答

3

file()在换行符中留下换行符,只有最后一行没有。你可以使用rtrim($test)来解决这个问题。

你也应该在情况下,它包含了诸如'字符转义名称,因此完整的解决方案将是(只查询前):

$test = mysql_real_escape_string(rtrim($test));

+0

该死的...很好。 – 2011-03-03 23:46:16

+0

该文件的内容是。 – John 2011-03-03 23:48:57

+0

长耳朵,你的真棒!这解决了它。非常感谢... – John 2011-03-04 00:03:16