-4

私は今このコードを持っています。

$select_links = "SELECT * FROM $table";
if (isset($_POST['link'])) {
    if ($_POST['link'] == '0'){
    }}
else {

$links = $conn->prepare($select_links);
$links->execute();
$links->setFetchMode(PDO::FETCH_ASSOC);  
while($row1 = $links->fetch())
{
echo $row1['name'];
};
}

_POSTなしでページをロードすると、echo $row1['name'];動作します。しかし、POSTを送信しても、link=1機能しません。なんで?POSTにが含まれている場合にのみ機能しないようにする必要がありますlink=0

PSDBOに切り替える前に動作します。

4

1 に答える 1

1

それは「DBO」ではなく、あなたが書いたコードです。
私はそれを正気に再フォーマットした後で初めてそれの意味を理解することができましたが。ここに行きます:

$select_links = "SELECT * FROM $table";
if (isset($_POST['link'])) {
    if ($_POST['link'] == '0'){
        // do nothing
    }
} else {
    $links = $conn->prepare($select_links);
    $links->execute();
    $links->setFetchMode(PDO::FETCH_ASSOC);  
    while($row1 = $links->fetch())
    {
        echo $row1['name'];
    }
}

したがって、POST link = 1を設定isset($_POST['link'])すると、チェックに合格し、他のコードは実行されません。

おそらくあなたはこのようなことを意味しました

if (!empty($_POST['link'])) {
    $select_links = "SELECT * FROM $table";
    $links = $conn->prepare($select_links);
    $links->execute();
    $links->setFetchMode(PDO::FETCH_ASSOC);  
    while($row1 = $links->fetch())
    {
        echo $row1['name'];
    }
}

他のロジックが必要な場合は、問題ありません。必要な動作をコーディングしてください。
マニュアルを読んで、試してみるすべてをテストしてください。
...しかし大丈夫、これは新参者にとって難しいかもしれません:

if (!isset($_POST['link']) || $_POST['link']) {

意味

IF $_POST['link'] is NOT set OR $_POST['link'] NOT equal to 0
于 2013-01-22T11:02:12.637 に答える