2017-07-31 19 views
0

php whileループでHTMLコードをネストしようとしています。そのブロックでエラーが発生します。 "解析エラー:構文エラー、C内のファイルの予期しない終わり:行119の\ xamppの\ htdocsに\ CMS \管理者の\ categories.php"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> 

しかし、私は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

はあなたが<?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 } }?> //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

の下に更新してください。続き

はあなたの特定のコードスニペットに応じて更新されたコードです:中括弧を閉じる

<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> 
関連する問題