2017-07-31 249 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>