检查值是否存在于MySQL行中

时间:2011-01-27 20:07:32

标签: php mysql database select row

我有一个php变量:$foo

我的名为data的MySQL表具有以下结构:

id    var    header

1     zj3     http://google.com

我想检查$foo行中是否已准备好var

如果是,我想回复header(“http://google.com”)

你会怎么做?

提前致谢,请询问是否需要澄清!

6 个答案:

答案 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

以下是有人为纠正其语法所做的评论:

在{第一行"

之前

"添加另一个)

所以,接受的答案是错误的!