簡體   English   中英

編輯文本中未定義的變量行

[英]undefined variable row in edit text

此代碼有效,它編輯了我要編輯的文本,但是顯示錯誤消息,表明我聲明了未定義的變量行。

<?php
    require("dbc.php");



    if( isset( $_GET['edit']))
    {
    $no = $_GET['edit'];
    $res = mysql_query("SELECT* From description_tbl Where No = '$no'");
    $row = mysql_fetch_array($res); 

    }
    if( isset($_POST['phome']))
    {
    $phome = $_POST['phome'];
    $No = $_POST['id'];
    $sql ="UPDATE Description_tbl set Describ = '$phome' Where No = '$No'";
    $res = mysql_query($sql) or die("could not update".mysql_error());
    echo "<meta http-equiv='refresh' content = '0;url = bHome.php'>";
    }
    ?>

    <form action ="edit.php" method = "POST">
    <textarea rows="10" cols="70" name="phome"><?php echo $row[1];?></textarea>
    <input type = "hidden" name = "id" value = "<?php echo $row[0];?>">
    <br>
    <input type = "submit" value = "Save">
    </form>

我相信這是由於您在表單中回顯了$row ,因此您需要檢查它們是否也已設置:

<textarea rows="10" cols="70" name="phome">
         <?php echo isset($row[1]) ? $row[1] : '';?>
</textarea>
<input type="hidden" name = "id" value = "<?php echo isset($row[0]) ? $row[0] : '';?>">

當表單不處於編輯模式時,由於if塊不會運行,因此這些變量是不確定的。

我仍然是Web編程的新手,但我猜想發生該錯誤的原因是當未執行第一個條件語句時。

但是,如果第一個if語句被執行或為true,那么您的代碼就可以了。

我修好了它! 我想跟你有完全一樣的探索。 好吧,這對我有用。

我假設if( isset( $_GET['edit']))是用於從edit.php?edit=No獲得id信息edit.php?edit=No (“ No”是我所指的id,因為您使用的變量是$No ,通常是整數,可能在相應的表中是唯一值)。

經過大量研究和浪費時間,我只是嘗試了一下。 將此添加到<form>

更改

<form action ="edit.php" method = "POST">

<form action ="edit.php?edit=<?php echo $row[0];?>" method = "POST">

在這種情況下,您使用$row[0]但它可能是行中的另一個位置而不是0,具體取決於sql表中的唯一值。

我正在猜測(不是該HTML表單的專家),但是我認為當您提交表單時,頁面會以某種方式刷新( form action = "edit.php..." )並丟失$_GET信息(否,id),所以您必須在表單操作中添加?edit=No部分,以便整個事情可以再次獲得很少的數目,而不會迷失在表中的哪一行上。

暫無
暫無

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

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