0

Hi everyone, Im relatively new to PHP.

Im required to create a database to store all the courses taken by a student and his/her grades. i have created the database and able to store and display all the data stored in the database.

I have a problem here:

Im required to create a drop down menu for each row of data displayed in a table so that user can delete the data entry by simply clicking the "cancel" button from the drop down menu. I have created the code as shown below, the problem is I can only delete the first row of data and not able to delete the other rows.

Need helps and advices from experts! :$

<html>
<body style="background-color:#E0FFFF;">


<script language="javascript" >
<!-- hide
function submitRequest(val) {
document.forms[0].submit();
}

// end hide -->
</script>

<?php

$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_course", $con);

$result = mysql_query("SELECT * FROM Courses ORDER BY Year, Sem, CourseCode");

echo "<table border='1' cellpadding='2' cellspacing='0'>
<tr>
<th>CourseCode</th>
<th>CourseName</th>
<th>Year</th>
<th>Sem</th>
<th>Grade</th>
<th>Option</th>
</tr>";

?>

<?php

while($row = mysql_fetch_array($result))
{
  echo "<tr>";
  echo "<td>" . $row['CourseCode'] . "</td>";
  echo "<td>" . $row['CourseName'] . "</td>";
  echo "<td>" . $row['Year'] . "</td>";
  echo "<td>" . $row['Sem'] . "</td>";
  echo "<td>" . $row['Grade'] . "</td>";
  echo "<td>";

?>
<?php
?>

         <form name="form1" action="submitDelete.php" method="post">
  	 <select name="cancel" onchange="submitRequest(this.value);">
  	 <option value=> </option>
	 <option value="<?php echo $row['CourseName'];?>">Cancel</option>
         </select>
         </form>

<?php
  echo "</td>";
  echo "</tr>";
  }

echo "</table>";

mysql_close($con);
?>

</body>
</html>

and the code for submitDelete.php is shown here:

<html>
<body style="background-color:#E0FFFF;">

<?php

header('Location: http://localhost/Database/viewcourses2.php');

$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_course", $con);

mysql_query("DELETE FROM Courses WHERE CourseName='$_POST[cancel]'");

mysql_close($con);

?>]
</body>
</html>

Thanks in advance!

3
Contributors
8
Replies
9
Views
6 Years
Discussion Span
Last Post by chaychie
0

try this code

<html>
    <body style="background-color:#E0FFFF;">
     
     
    
     
    <?php
     
    $con = mysql_connect("localhost","root","");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }
     
    mysql_select_db("my_course", $con);
     
    $result = mysql_query("SELECT * FROM Courses ORDER BY Year, Sem, CourseCode");
     
    echo "<table border='1' cellpadding='2' cellspacing='0'>
    <tr>
    <th>CourseCode</th>
    <th>CourseName</th>
    <th>Year</th>
    <th>Sem</th>
    <th>Grade</th>
    <th>Option</th>
    </tr>";
     
    ?>
     
    <?php
     
    while($row = mysql_fetch_array($result))
    {
    echo "<tr>";
    echo "<td>" . $row['CourseCode'] . "</td>";
    echo "<td>" . $row['CourseName'] . "</td>";
    echo "<td>" . $row['Year'] . "</td>";
    echo "<td>" . $row['Sem'] . "</td>";
    echo "<td>" . $row['Grade'] . "</td>";
    ?>
    <td><a href="submitDelete.php?code=<?php echo $row['CourseCode'];?>">Cancel</a></td> 
    <?php
    
    echo "</tr>";
    }
     
    echo "</table>";
     
    mysql_close($con);
    ?>
     
    </body>
    </html>

and submitDelete.php is

<html>
    <body style="background-color:#E0FFFF;">
     
    <?php
     
    
     
    $con = mysql_connect("localhost","root","");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }
     
    mysql_select_db("my_course", $con);
     
    mysql_query("DELETE FROM Courses WHERE CourseCode='".$_GET['code']."'");
     
    mysql_close($con);
     header('Location: http://localhost/Database/viewcourses2.php');
    ?>
    </body>
    </html>
0

Hi Karthik,

Is it possible to do it in a dropdown menu instead of href/link?

Thanks!

0

Hi,

Ya, actually it's only a part of my project. Later i will have to add in more options into the dropdown menu in order to have more functions such as delete, edit and update functions.

Thanks!

0

You can do the edit and delete option with href too. This is simple and better than your idea.

Edited by karthik_ppts: n/a

0

Hmm.. It's a requirement for me to do it in a drop down menu instead of href. Hope that you can help! =)

0

In your code, you are making as many forms are how many records are there in the database, but when you submitted the form, you are doing like "document.forms[0].submit();" which submitted the first form element in the document.
You can try this code:

<html>
<body style="background-color:#E0FFFF;">


<script language="javascript" >
<!-- hide
function submitRequest(id) {
document.forms[id].submit();
}

// end hide -->
</script>

<?php

$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_course", $con);

$result = mysql_query("SELECT * FROM Courses ORDER BY Year, Sem, CourseCode");

echo "<table border='1' cellpadding='2' cellspacing='0'>
<tr>
<th>CourseCode</th>
<th>CourseName</th>
<th>Year</th>
<th>Sem</th>
<th>Grade</th>
<th>Option</th>
</tr>";

?>

<?php
$i = 0;
while($row = mysql_fetch_array($result))
{
  echo "<tr>";
  echo "<td>" . $row['CourseCode'] . "</td>";
  echo "<td>" . $row['CourseName'] . "</td>";
  echo "<td>" . $row['Year'] . "</td>";
  echo "<td>" . $row['Sem'] . "</td>";
  echo "<td>" . $row['Grade'] . "</td>";
  echo "<td>";

?>
<?php
?>

         <form name="form1" action="submitDelete.php" method="post">
     <select name="cancel" onchange="submitRequest(<?php echo $i; ?>);">
     <option value=> </option>
     <option value="<?php echo $row['CourseName'];?>">Cancel</option>
         </select>
         </form>

<?php
  echo "</td>";
  echo "</tr>";
  $i++;
  }

echo "</table>";

mysql_close($con);
?>

</body>
</html>

Edited by Reverend Jim: Fixed formatting

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.