2015-12-13 103 views
0

我正在努力與這一點。 我有這個函數叫getCategories:

嗨。我正在努力與這一點。 我有這個

function getCategories(){ 
    global $con; 
    $q = "SELECT * FROM categories;"; 
    $result = mysqli_query($con, $q); 
    while($row = mysqli_fetch_assoc($result)){ 
     $category = $row["CategoryName"]; 
     $sec = htmlspecialchars($category); 
     echo " <tr> 
     <td>" . $category . "</td> 
     <td> 
      <a>View</a> | 
      <a href=categories.php?task=update&category=" . urlencode($category) . ">Edit</a> | 
      <a href=categories.php?task=delete&category=" . urlencode($category) . ">Delete</a> 
     </td> 
     </tr>"; 
    } 
} 

那麼我categories.php(形式)

<form action="categories.php" method="POST"> 
    <p> 
     <label for="categoryname">Category Name:&nbsp;</label> 
     <input type="text" name="category_name" placeholder="Enter category name" value="<?php echo $editCat?>"> 
     <?php 
      if ($_GET["task"]="") { 
       echo "<input type='submit' value='Add Category' name='submit'>"; 
      } else { 
       echo "<input type='submit' value='Update Category' name='update'>"; 
      }   
     ?> 
    </p> 
</form> 

但是,當我點擊編輯按鈕,腳本總是呼應的第一個。我該怎麼辦?

+1

有條件的應該是==,not =。也就是說,如果($ _GET [「任務」] ==「」){' – Tristan

+0

也許這是dastation http://stackoverflow.com/questions/2974011/while-row-mysql-fetch-arrayresult-how-many-loops -are感執行的 –

回答

0

您可以檢查任務變量是否作爲查詢字符串在url中傳遞。

<?php 
    if (!isset($_GET["task"]) || $_GET["task"] == '') { 
     echo "<input type='submit' value='Add Category' name='submit'>"; 
    } else { 
     echo "<input type='submit' value='Update Category' name='update'>"; 
    }   
?> 
0

如果($ _GET [ 「任務」] = 「」)

應該

如果($ _GET [ 「任務」] == 「」)

,因爲第一個將總是返回true

0

您正在分配。你應該做對比,所以就把這條線:

if ($_GET["task"] == "") { 

而是這行:

if ($_GET["task"]="") { 

更新(技術位):

如果有什麼你確實寫檢查比較結果返回truefalse,並且由於在99.99999%變量賦值操作成功結束,所以第一個條件總是通過並且執行程序永遠不會達到第二個條件。