0

我正在尝试连接到 MySQL 数据库以检查表(builditblocks)以查看用户在“名称”列中提供的数据。

这是我到目前为止所拥有的:

<?php
 $temp=mysqli_query($con, "SELECT * FROM `builditblocks`.`module_index`.`name`");
 $i = 0;
 while($module = mysqli_fetch_array($temp))
 {
   "moduleArray[".$i."]=\"" . $module["name"]."\";" ;
   $i++
   //stuck here I need to know how to
   //store them all in an array and check
   //to see if the input matches any array elements
 }

如果有名称,如何检查表?

4

4 回答 4

1

首先,将名称推送到新数组并检查in_array

$modules = array();
while($module = mysqli_fetch_array($temp))
{
   $modules[] = $module['name'];
}

if(in_array($_POST['input'], $modules))
    echo "I found";
else
    echo "Not found";
于 2013-08-21T13:59:17.957 回答
1

您可能想尝试将“WHERE”子句与“LIKE”结合使用。

$temp = mysqli_query($con, "SELECT * FROM `builditblocks`.`module_index`.`name` WHERE `name` LIKE '%input%'");

上面的代码将只为您提供名称中包含“输入”的记录。查看http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like了解更多信息。

于 2013-08-21T14:02:43.703 回答
0

要查找数据库中是否存在名称,您需要做的就是WHERE在 SQL 查询中添加一个。

$name = $module['name'];

"SELECT * FROM 'builditblocks'.'module_index'.'name' WHERE name = '".$name."'"

然后检查是否返回任何内容。如果是,则该名称存在,如果不存在,则该名称不存在。

于 2013-08-21T14:04:18.390 回答
0

尝试以下操作:

$name = $module["name"]; // Assign your user input to a variable
$temp = mysqli_query($con, "SELECT * FROM builditblocks.module_index WHERE name = '" . $name . "'"; // Get all fields from table where the name field equals the user input.
if ($temp) {
    // If any records were returned the name exists
} else {
    // Otherwise the name doesn't exist
}

希望这可以帮助。

于 2013-08-21T14:15:06.473 回答