0

ユーザーがビデオの変更リンクをクリックした場合、条件付きの場合、前のコードでクエリされた行をこのコード内にエコーさせようとしています。ただし、if($ videoEdit){条件付きのすぐ上に$ video変数をエコーすると、ページに表示されますが、if($ videoEdit){条件付きでエコーしようとすると、何らかの理由で出力されません。よくわかりません。これが私のコードです(クエリは含まれていませんが、echo $ videoは条件付きの前に適切な結果を出力します)

添加:::

require ('../mysql_connect.php'); // Connect to DB

    // Handle Video Edit
   if ($_GET['video'] == "EDIT") {

$videoEdit = TRUE;

   }

    $query = "SELECT inventory.inv_key, inventory.mdl_key, inventory.serial, inventory.date_aquired, inventory.location, inventory.price, model.mdl_key, model.man_key, model.cls_key, model.sub_cls_key, model.model, model.video, model.picture, model.pdf, subclass.sub_cls_key, subclass.subclass, class.cls_key, class.class, manufacturer.man_key, manufacturer.manufacturer FROM inventory, manufacturer, model, class, subclass WHERE inventory.mdl_key='$_GET[mdl_key]' AND model.mdl_key='$_GET[mdl_key]' AND class.cls_key='$_GET[cls_key]' AND subclass.sub_cls_key='$_GET[sub_cls_key]' AND manufacturer.man_key='$_GET[man_key]' AND manufacturer=manufacturer.manufacturer AND class=class.class AND subclass=subclass.subclass";
$result = @mysql_query ($query); // Run the query

while ($row = mysql_fetch_array 
($result, MYSQL_ASSOC)) {
$model = $row['model'];
$mdl_key = $row['mdl_key'];
$video = $row['video'];
$picture = $row['picture'];
$pdf = $row['pdf'];
$description = $row['description'];
$manufacturer = $row['manufacturer'];
$man_key = $row['man_key'];
}

上記の追加::::

if ($_GET['video'] == 'EDIT') { 
$videoEdit = TRUE; 
}

while ($row = mysql_fetch_array($result)) {
$video = $row['video'];
}

if ($videoEdit) { // <-- boolean comparison
echo '<form action="edit_media.php" method="post">
<p>Video Link: <input type="text" name="serial" size="25" maxlength="100" value=';
       if (isset($video))
            echo $video;
        }
            echo ' /></p><p><input type="submit" name="submit" value="Submit Video" /></p>               <input type="hidden" name="submitted" value="TRUE" />
        </form>';
}

追加::これは、私のコードでは、上記のコードのすぐ下にあります

if ($video != "") {
    echo '<iframe width="420" height="315" src=' . $video . ' frameborder="0" allowfullscreen></iframe> | <a href=edit_media.php?video=EDIT&mdl_key=' . $mdl_key . '&man_key=' . $man_key . '>Modify Video Link</a>';
} else {
    echo "Video Not Present | <a href=edit_media.php?video=EDIT>Add a Video</a>";
}
4

3 に答える 3

1

HTML文字列の残りの部分の前にエコーがありません'/></ p> ...'

if (isset($video))
      echo $video;

echo ' /></p><p><input type="submit" name="submit" value="Submit Video" /></p> <input type="hidden" name="submitted" value="TRUE" /></form>';
于 2012-10-30T14:44:17.200 に答える
0

これが答えかどうかはわかりませんが、$ videoコンテンツをエコーアウトしようとした後、ループを続行する前に別の「エコー」が必要なようです。この前に:

' /></p><p><input type="submit" name="submit" value="Submit Video" /></p>               <input type="hidden" name="submitted" value="TRUE" />
于 2012-10-30T14:45:01.920 に答える
0

ほとんどの場合、$video設定されていません。

あなたはループecho $video;の後にしようとするべきです。whileまた、単一の結果のみをフェッチする場合を除いて、ループを使用しないでください。

$row = mysql_fetch_array($result);
$video = $row['video'];
echo $video;

アップデート

これが私があなたの問題にアプローチする方法です(明らかにmysql_関数を置き換えます):

if ($_GET['video'] == 'EDIT') { 
    $result = mysql_query("SELECT ... ");
    $row = mysql_fetch_array($result);
    $video = $row['video'];

    echo '<form action="edit_media.php" method="post">
    <p>Video Link: <input type="text" name="serial" size="25" maxlength="100" value='";
    if (isset($video)) {
        echo $video;
    }

    echo '" /></p><p><input type="submit" name="submit" value="Submit Video" /></p>               <input type="hidden" name="submitted" value="TRUE" />
            </form>';
    }

}

また、開いた中括弧()が欠落しており、HTML{の値を二重引用符で囲んでいることにも気づきました。$video

于 2012-10-30T14:48:14.880 に答える