我有一个php变量:$foo
我的名为data
的MySQL表具有以下结构:
id var header
1 zj3 http://google.com
我想检查$foo
行中是否已准备好var
。
如果是,我想回复header
(“http://google.com”)
你会怎么做?
提前致谢,请询问是否需要澄清!
答案 0 :(得分:9)
您的查询应该是:
SELECT `header` FROM `data` WHERE `var` = '$foo'
这将返回var
值为$foo
的所有标头。
$db = mysqli_connect('localhost', 'username', 'password', 'database');
if($query = mysqli_query($db, "SELECT `header` FROM `data` WHERE `var` = '$foo'")){
while($row = mysqli_fetch_assoc($query)){
echo $row['header'];
}
mysqli_free_result($query);
}
答案 1 :(得分:1)
首先连接到db
$query = mysql_query("SELECT var, header FROM data WHERE id='1'") or die(mysql_error());
while($row = mysql_fetch_assoc($query)){
if($foo == $row['var']){
echo $row['header'];
}
}
编辑:根据您的编辑更改了平等声明
答案 2 :(得分:1)
您在询问$foo
是否与data
中的任何字段匹配,或者$foo=some_field
是否与$foo==var
相匹配?如果您需要$foo='somevalue';
$query="SELECT id, var, header FROM `data` WHERE var='$foo'";
$result=mysqli_query($query);
if($result->num_rows==0)
$loc= 'http://google.com';//default value for when there is no row that matches $foo
}else{
$row=$result->fetch_assoc(); //more than one row is useless since the first header('Location: x') command sends the browser to a new page and away from your script.
$loc=$row['header'];
}
header ("Location: $loc);
exit;
,请点击这里。
{{1}}
ETA:由于您已编辑了问题,因此如果您的搜索值与您的var列匹配,则您希望回显标题列。以上内容对此不起作用。
答案 3 :(得分:1)
这一点都不难,如果我理解正确,那么这应该对你有帮助。
// Query Variable / Contains you database query information
$results = $query;
// Loop through like so if the results are returned as an array
foreach($results as $result)
{
if(!$result['var'])
echo $result['header'];
}
// Loop through like so if the results are returned as an object
foreach($results as $result)
{
if(!$result->var)
echo $result->header;
}
答案 4 :(得分:0)
您只想知道$ var的值是否在该列中的任何位置(任何行)?
SELECT COUNT(id) FROM data WHERE var = ?;
结果将是字段var包含$ var。
值的行数答案 5 :(得分:0)
这里是所有"它存在的模板"的问题。
到目前为止,这是我唯一真正有用的东西,并没有被弃用。
{{1}}
警告!强>
即使变量不存在, $ query 与 mysqli_query()之间的比较也会始终返回 TRUE
唯一的方法 - 发生在我身上 - 因为比较返回 FALSE 是因为查询中存在语法错误。
我不知道为什么它对那些写了接受的答案的人起作用,也许它是一个更新,或者他有语法错误,并且非常自信他没有检查是否它可能是 TRUE 。
以下是有人为纠正其语法所做的评论:
在{第一行" 之前 "添加另一个)
所以,接受的答案是错误的!