2017-07-31 256 views
0

我試圖在php while循環中嵌套HTML代碼。它給出了該塊的錯誤。 「解析錯誤:語法錯誤,在C意外的文件結尾:\ XAMPP \ htdocs中\ CMS \ ADMIN \ categories.php 119線上」while while循環中的HTML

<form action="categories.php" method="post"> 
         <div class="form-group"> 
          <label for="cat-title">Update</label> 
          <?php //EDIT & UPDATE // 
          if (isset($_GET['edit'])){ 
           $edit_row_title = $_GET['edit']; 
           $query = "SELECT * FROM category WHERE cat_id = {$edit_row_title}"; 
           $edit_query = mysqli_query($connect,$query); 

           while($row = mysqli_fetch_assoc($edit_query)){ 
            $cat_id = $row['cat_id']; 
            $cat_title = $row['cat_title']; 
             ?> 
           <input class="form-control" name="cat_title" type="text" value="<?php if(isset($cat_title)){echo $cat_title;} ?>"> 
           <?php } ?> } 

          <input type="text" name="cat-title" class="form-control" > 
         </div> 
         <div class="form-group"> 
          <input class="btn btn-primary" type="submit" name="submit" value="Edit Category" > 
         </div> 
        </form> 

但是,當我的HTML代碼前加上大括號它的工作原理。期待while循環以這種方式不能正常工作。

<form action="categories.php" method="post"> 
         <div class="form-group"> 
          <label for="cat-title">Update</label> 
          <?php //EDIT & UPDATE // 
          if (isset($_GET['edit'])){ 
           $edit_row_title = $_GET['edit']; 
           $query = "SELECT * FROM category WHERE cat_id = {$edit_row_title}"; 
           $edit_query = mysqli_query($connect,$query); 

           while($row = mysqli_fetch_assoc($edit_query)){ 
            $cat_id = $row['cat_id']; 
            $cat_title = $row['cat_title']; 
            } ?> 
           <input class="form-control" name="cat_title" type="text" value="<?php if(isset($cat_title)){echo $cat_title;} ?>"> 
           <?php } ?> 

          <input type="text" name="cat-title" class="form-control" > 
         </div> 
         <div class="form-group"> 
          <input class="btn btn-primary" type="submit" name="submit" value="Edit Category" > 
         </div> 
        </form> 
+0

右大括號應該是PHP的標籤內 – JYoThI

回答

0

變化

<?php } ?> } 

<?php } }?> 

更新的代碼

<form action="categories.php" method="post"> 
    <div class="form-group"> 
    <label for="cat-title">Update</label> 
    <?php //EDIT & UPDATE // 
    if (isset($_GET['edit'])){ 
     $edit_row_title = $_GET['edit']; 
     $query = "SELECT * FROM category WHERE cat_id = {$edit_row_title}"; 
     $edit_query = mysqli_query($connect,$query); 

     while($row = mysqli_fetch_assoc($edit_query)){ 
     $cat_id = $row['cat_id']; 
     $cat_title = $row['cat_title']; 
     ?> 
     <input class="form-control" name="cat_title" type="text" value="<?php if(isset($cat_title)){echo $cat_title;} ?>"> 
     <?php } }?> //Changes 
     <input type="text" name="cat-title" class="form-control" > 
    </div> 
    <div class="form-group"> 
    <input class="btn btn-primary" type="submit" name="submit" value="Edit Category" > 
    </div> 
</form> 
0
while($row = mysqli_fetch_assoc($edit_query)){ 
            $cat_id = $row['cat_id']; 
            $cat_title = $row['cat_title']; 
             ?> 
           <input class="form-control" name="cat_title" type="text" value="<?php if(isset($cat_title)){echo $cat_title;} ?>"> 
           <?php } ?> } 

在最後一行中,在關閉PHP標記後添加一個結束花括號。 我認爲這是關閉if,但PHP不會解釋它。因此,在文件末尾,PHP仍然期待該塊被關閉,導致解析錯誤。

0

請更新下面的代碼

<form action="categories.php" method="post"> 
         <div class="form-group"> 
          <label for="cat-title">Update</label> 
          <?php //EDIT & UPDATE // 
          if (isset($_GET['edit'])){ 
           $edit_row_title = $_GET['edit']; 
           $query = "SELECT * FROM category WHERE cat_id = {$edit_row_title}"; 
           $edit_query = mysqli_query($connect,$query); 

           while($row = mysqli_fetch_assoc($edit_query)){ 
            $cat_id = $row['cat_id']; 
            $cat_title = $row['cat_title']; 
             ?> 
           <input class="form-control" name="cat_title" type="text" value="<?php if(isset($cat_title)){echo $cat_title;} ?>"> 
           <?php } }?> //closing if loop and while loop 

          <input type="text" name="cat-title" class="form-control" > 
         </div> 
         <div class="form-group"> 
          <input class="btn btn-primary" type="submit" name="submit" value="Edit Category" > 
         </div> 
        </form> 
0

你必須改變<?php } ?> }<?php } }?>,你的問題就解決了。

以下是按照更新代碼,您定的代碼片段:

<form action="categories.php" method="post"> 
    <div class="form-group"> 
    <label for="cat-title">Update</label> 
    <?php //EDIT & UPDATE // 
    if (isset($_GET['edit'])){ 
     $edit_row_title = $_GET['edit']; 
     $query = "SELECT * FROM category WHERE cat_id = {$edit_row_title}"; 
     $edit_query = mysqli_query($connect,$query); 

     while($row = mysqli_fetch_assoc($edit_query)){ 
     $cat_id = $row['cat_id']; 
     $cat_title = $row['cat_title']; 
     ?> 
     <input class="form-control" name="cat_title" type="text" value="<?php if(isset($cat_title)){echo $cat_title;} ?>"> 
     <?php } }?> //Changes => This changes requred on your code. 
     <input type="text" name="cat-title" class="form-control" > 
    </div> 
    <div class="form-group"> 
    <input class="btn btn-primary" type="submit" name="submit" value="Edit Category" > 
    </div> 
</form>