我有一个Sql表,我需要通过members
列搜索,以查看是否有任何值与以前获得的值相同(例如:76561198119598543),如果是,那么我想获得存储在同一行的name
下的值…
下面的链接是一个示例,说明了表的外观以及成员列是如何设置的。http://nbdcommunity.com/staffimages/example.png
我不是一个太PhP的人,我已经尝试了几乎所有我能找到的…$gangsql = 'SELECT members, name, owner FROM 'gangs' WHERE owner LIKE "$playerid%"';
(playerid是我要比较的值)
看起来列成员中的值不是数字,而是字符串。如果是这样,您可以尝试:
SELECT name FROM gangs WHERE members LIKE '%76561198119598543%'
这将返回"members"列中包含您所检查的数字的所有行的"name"的值。
以下是我对你的问题的理解:
它就像一个搜索框。如果您想要查看的数据是匹配的,您显示它吗?
的例子:PHP文件
<?php
//Connection here
if isset($_POST["member"]){
$get_data = $_POST["member"];
//Display matched Data
$sql = mysql_query("SELECT * FROM table_name WHERE member = '$get_data' ");
while($row = mysql_fetch_array($sql)){
//Declare variables
$this_name = $row["name"];
//Display Variable
echo
'The name you are looking for is this person; on this case it''s a number <u>'.$this_name.'</u>';
}
//END WHILE LOOP
}else{
//No match
echo '
<script>
alert("Data has no match. Please try again");
window.location= "php_page_name.php";
</script>
';
}
?>
这里的HTML
<form method="post" action="">
Search Member:
<input type="text" name="member">
<input type="submit" value="Filter">
</form>
希望这对你有帮助。好运!
$lastValue = "76561198119598543";
$c = new mysqli($server, $user, $password) or die("cant connect");
if($res = $c->query("SELECT name FROM table WHERE members='$lastValue'")){
if($res->num_rows > 0){
$resAssoc = $res->fetch_assoc();
$name = $resAssoc["name"];
}
} else {
die($c->error);
}
$c->close();