无法从表中检索所有行

时间:2013-04-25 09:41:38

标签: php mysql web fetch

我已经尝试过去一小时为服务器确定用户是否已在MySQL数据库中拥有类似行的方法

你的任何人都可以帮助我......

这是我现在完成的代码

$nummer = $_GET['a'];
$klasse = strtoupper ( $_GET['b'] );

$kid = $nummer . '.' . $klasse;

$result = $db->query("SELECT kid FROM Kcode WHERE sid='".$_SESSION['id']."'");
$resa = $result->fetch();

$b = strtoupper ( $resa['kid'] );
$a = $kid
$c = $_SESSION['id'];



if ($a !== $b){
echo "insert";
} else {
echo "already exists";
}

可以更深入地解释不同的get命令是什么:

  • $_GET['a'] =从上一页检索到的字母
  • $_GET['b'] =从上一页检索到的数字

"小子"我想选择的是我的Kcode表中的一行,问题是有几个孩子我想要与$a进行比较...但是当我尝试这种方式时它只检索最后创建的

你的时间

编辑: 正如评论中所述,我想将$kid与名为kid WHEN sid=$_SESSION['id']的mysql行进行比较。

1 个答案:

答案 0 :(得分:0)

如果要检索多行,则需要将fetch置于循环中:

$exists = false;

while($resa = $result->fetch()) {

    $b = strtoupper ( $resa['kid'] );
    $a = $kid
    $c = $_SESSION['id'];

    if ($a !== $b){
        //echo "insert";
    } else {
        $exists = true;
        //echo "already exists";
    }
}


if($exists){
{
    echo "already exists";
} else {
    echo "insert";
}

这是你想要做的吗?

现在,如果您要做的只是查看是否存在行,则应修改查询:

$result = $db->query("SELECT kid FROM Kcode WHERE sid='".$_SESSION['id']."' 
                      AND kid='$kid'");

由于您从$kid参数中获取GET,因此需要先清理它,以防止SQL注入。