这对专家来说可能很简单。但我无法让它发挥作用。
我的MySql数据库中有一个表,其中包含以下列:Score_id
和Score
。
我正在查询此表并在我的网页中显示这些条目。它看起来像这样:
PHP代码的一部分:
<form method="POST">
$i=0;
while ($i < sizeof($score_id)) {
// Display the score data
echo "<span>$score_id[$i]</span><span>$score[$i]</span>";
echo "<input type=\"submit\" value=\"delete\" name=\"delete_score\">";
$i++;
}
</form>
显示的结果:
Score Id Score
1 5 <delete>
2 50 <delete>
3 15 <delete>
当用户点击删除按钮时,我想从表中删除该特定条目。
我如何知道用户点击了特定删除按钮?(或如何发送带有帖子的相应score_id
?)
谢谢,
答案 0 :(得分:1)
在这种情况下您可以使用按钮:
echo '<form method="POST">';
$i=0;
while ($i < sizeof($score_id)) {
// Display the score data
echo "<span>$score_id[$i]</span><span>$score[$i]</span>";
echo "<button type='submit' value='".$score_id[$i]."' name='delete_score'>Delete</button>";
echo '<br/>';
$i++;
}
echo '</form>';
$db = new mysqli('localhost', 'username', 'password', 'database_name');
// same page processing
if(isset($_POST['delete_score'])) {
$id = $_POST['delete_score'];
$sql = 'DELETE FROM table_name WHERE score_id = ?';
$delete = $db->prepare($sql);
$delete->bind_param('i', $id);
$delete->execute();
if($delete->affected_rows > 0) {
echo 'Delete success!';
}
}
答案 1 :(得分:0)
我会使用例如Id前缀命名输入字段,然后您可以在后端循环访问id的+“_ delete_score”以删除它。
echo "<input type=\"submit\" value=\"delete\" name=" . $i . "_\"delete_score\">";
答案 2 :(得分:0)
调用JS
函数并将分数ID传递给删除....
echo '<input type="submit" value="delete" name="delete_score" onclick(deleteThis('.$score_id[$i].'))>';
答案 3 :(得分:0)
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT Score_id,Score FROM my_table ORDER BY Score_id";
if ($result=mysqli_query($con,$sql))
{
// Fetch one and one row
while ($row=mysqli_fetch_row($result))
{
echo "<span>";
echo $row['Score_id'];
echo "</span>";
echo "<span>";
echo $row['Score'];
echo "</span>";
echo "<a href='delete.php?Score_id=".$row['Score_id'].'>Delete</a>"
}
// Free result set
mysqli_free_result($result);
}
mysqli_close($con);
?>
在delete.php文件中,您应该在DELETE语句中编写一个使用参数$ _GET [&#39; Score_id&#39;]的语句
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// prepare and bind
$stmt = $conn->prepare("DELETE FROM my_table WHERE Score_id = ?");
$stmt->bind_param("i", $score_id);
// set parameters and execute
$score_id = $_GET['Score_id'];
$stmt->execute();
header('Location: previous_page.php');
$stmt->close();
$con->close();
?>
答案 4 :(得分:0)
您使用GET方法。
echo "<a href='delete.php?score_id=$score_id'>Delete</a>"
转到delete.php并输入:
$score_id = $_GET['score_id'];
然后,您可以继续删除数据库中的特定项目。干杯!