0

I have this web based app with PHP (mysql) backend. I have a page to enter the grades and position received in a particular event. I need the page to show the checkboxes (for the grades) only if they have not been entered before. So I have this column P1 in my database and if this is NULL i need to show the checkboxes.

This is what i have on the php side

<?php
$PID = (int)$_GET['PID'];
$con = new mysqli("localhost","my_user","my_password",'events');
$result = $con->query("SELECT * FROM eventlist WHERE Eid=$PID");
global $output;
$row =  $result->fetch_assoc();
echo '<h1>'.$row["Ename"].'</h1>';
if($row["P1"]==NULL)
?>

and what i need to be displayed in P1 is NULL is as follows

<h2>Slot 1</h2>
<h3>Enter Result</h3>
<div id="c1" class="radio">
  <label><input type="radio" name="opt1radio" value=30>First</label>
  <label><input type="radio" name="opt1radio" value=20>Second</label>
  <label><input type="radio" name="opt1radio" value=10>Third</label>
</div>
<h3>Enter Grade</h3>
<div id="c2" class="radio">
  <label><input type="radio" name="opt2radio" value=5>A</label>
  <label><input type="radio" name="opt2radio" value=4>B</label>
  <label><input type="radio" name="opt2radio" value=3>C</label>
  <label><input type="radio" name="opt2radio" value=2>D</label>
  <label><input type="radio" name="opt2radio" value=0>DQ</label>
</div>
<div id="submit">
  <button onclick="myFunction()" type="button" class="btn btn-success">Submit</button>
</div>

How can i do this without putting echo in each and every HTML line.

0

2 Answers 2

0

You can try this. If you don't want to use echo, just enclose the html in the if without including the html in the php area

<?php
 $PID = (int)$_GET['PID'];
    $con = new mysqli("localhost","my_user","my_password",'events');
    $result = $con->query("SELECT * FROM eventlist WHERE Eid=$PID");
    global $output;
    $row =  $result->fetch_assoc();
    echo '<h1>'.$row["Ename"].'</h1>';
    if($row["P1"]==NULL){
  ?>

<h2>Slot 1</h2>
    <h3>Enter Result</h3>
    <div id="c1" class="radio">
      <label><input type="radio" name="opt1radio" value=30>First</label>

      <label><input type="radio" name="opt1radio" value=20>Second</label>

      <label><input type="radio" name="opt1radio" value=10>Third</label>
    </div>

   <h3>Enter Grade</h3>  
   <div id="c2" class="radio">
      <label><input type="radio" name="opt2radio" value=5>A</label>

      <label><input type="radio" name="opt2radio" value=4>B</label>

      <label><input type="radio" name="opt2radio" value=3>C</label>

      <label><input type="radio" name="opt2radio" value=2>D</label>

       <label><input type="radio" name="opt2radio" value=0>DQ</label>
    </div>
    <div id="submit">

      <button onclick="myFunction()" type="button" class="btn btn-success">Submit</button>
    </div>
<?php }?>
Sign up to request clarification or add additional context in comments.

1 Comment

Accept the answer if it worked so that others may know what is working for the OP.
0

I think that the only think that you are missing is to retrieve all rows one by one, you can do it with: while ($row = $result->fetch_assoc()) { and then put all your code like:

<?php
 $PID = (int)$_GET['PID'];
    $con = new mysqli("localhost","my_user","my_password",'events');
    $result = $con->query("SELECT * FROM eventlist WHERE Eid=$PID");
    global $output;
    while ($row = $result->fetch_assoc()) {
    echo '<h1>'.$row["Ename"].'</h1>';
    if($row["P1"]==NULL){
  ?>

<h2>Slot 1</h2>
    <h3>Enter Result</h3>
    <div id="c1" class="radio">
      <label><input type="radio" name="opt1radio" value=30>First</label>

      <label><input type="radio" name="opt1radio" value=20>Second</label>

      <label><input type="radio" name="opt1radio" value=10>Third</label>
    </div>

   <h3>Enter Grade</h3>  
   <div id="c2" class="radio">
      <label><input type="radio" name="opt2radio" value=5>A</label>

      <label><input type="radio" name="opt2radio" value=4>B</label>

      <label><input type="radio" name="opt2radio" value=3>C</label>

      <label><input type="radio" name="opt2radio" value=2>D</label>

       <label><input type="radio" name="opt2radio" value=0>DQ</label>
    </div>
    <div id="submit">

      <button onclick="myFunction()" type="button" class="btn btn-success">Submit</button>
    </div>
<?php } }?>

Whitout the while, your code only will show the first result.

Hope it helps!

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.