0

Im trying to nest HTML code in php while loop. It gives error with that block. "Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\cms\admin\categories.php on line 119"

<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>

But when i put curly brackets before html code it works. Expect while loop doesnt work properly in this way.

<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>

4 Answers4

0

Change

<?php } ?> }

To

<?php } }?>

Updated Code

<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>
Nana Partykar
  • 10,556
  • 10
  • 48
  • 77
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 } ?> }

In the last line, you add a closing curly bracket after the closing PHP tag. I assume it's there to close the if but PHP won't interpret it. Therefore, at the end of the file, PHP will still be expecting that block to be closed, causing a parse error.

Sarkouille
  • 1,275
  • 9
  • 16
0

Please Update below code

<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>
Saravana
  • 258
  • 7
  • 17
0

You have to Change <?php } ?> } into <?php } }?> and your problem will solve.

Following is updated code according to your given code snippet :

<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>
Prabhu Nandan Kumar
  • 1,205
  • 12
  • 22