簡體   English   中英

無法檢索表中的所有行

[英]can't retrieve all rows from a table

在過去的一個小時中,我嘗試了一種方法,以便服務器識別用戶是否已經在我的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行進行比較。

如果要檢索多行,則需要將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'");

由於您是從GET參數中獲取$kid ,因此您需要先對其進行清理,以防止SQL注入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM