- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发了一篇帖子询问如何制作增值按钮。我得到了一个不错的答案,我尝试了一下,但没有成功。
原文:
$result = mysqli_query($con, "SELECT * FROM champion_counters_b WHERE champion_name='" . $search_result . "'");
echo "<table class='champion_counters' border='1'><tr><th>Champion Counter</th><th>Up Votes</th><th>Down Votes</th></tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['champion_counter'] . "</td>";
echo "<td>" . $row['upvotes'] . "</td>";
echo "<td>" . $row['downvotes'] . "</td>";
}
echo "</table>";
当前:
$result = mysqli_query($con, "SELECT * FROM champion_counters_b WHERE champion_name='" . $search_result . "'");
echo "<table class='champion_counters' border='1'><tr><th>Champion Counter</th><th>Up Votes</th><th>Down Votes</th></tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['champion_counter'] . "</td>";
echo "<td><a href='action.php?do=up&id=" . $row['upvotes'] . "'>Upvote [" . $row['upvotes'] . "]</a></td>";
echo "<td><a href='action.php?do=down&id=" . $row['downvotes'] . "'>Downvote [" . $row['downvotes'] . "]</a></td>";
}
echo "</table>";
mysqli_close($con);
?>
action.php:
$action = $_GET['do'];
$id = $_GET['id'];
if ($action=="up") {
$result = mysqli_query($con, "UPDATE champion_counters_b SET" . $id . "=" . $id+1 . "'");
}
elseif ($action=="down") {
$result = mysqli_query($con, "UPDATE champion_counters_b SET" . $id . "=" . $id-1 . "'");
}
else {echo "error: 002 / voting error";}
mysqli_close($con);
?>
正如您所看到的,我实现了建议的更改,这些更改可能有效,但它们没有执行,而不是更新数据,它什么也没做。当按下 "upvote"/"downvote"
时它获取当前值 $id
而不是根据数据的位置来更新它。
tl;dr:我尝试了上一个线程的修复,但没有做任何事情。请帮忙?
最佳答案
抱歉,如果我不清楚,让我再试一次:
您将一个链接插入到表中,该链接调用一个action.php。 action.php 更新数据库。更新所需的信息作为 GET 参数传递。
要更新数据库,您需要知道要做什么,其次,哪些数据库条目实际上受到影响。
一步一步:
首先,您必须将链接插入表格中:
$result = mysqli_query($con, "SELECT * FROM champion_counters_b WHERE champion_name='" . $search_result . "'");
echo "<table class='champion_counters' border='1'><tr><th>Champion Counter</th><th>Up Votes</th><th></th><th>Down Votes</th><th></th></tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['champion_counter'] . "</td>";
echo "<td>" . $row['upvotes'] . "</td>";
echo "<td><a href='action.php?do=up&id=" . $row['key'] . "'>Upvote</a></td>";
echo "<td>" . $row['downvotes'] . "</td>";
echo "<td><a href='action.php?do=down&id=" . $row['key'] . "'>Downvote</a></td>";
echo "</tr>";
}
echo "</table>";
单击链接后,我们将向 action.php 发送两条信息。
我们必须执行的操作,无论是赞成还是反对。它告诉我们要做什么。
我们必须赞成或反对的元素的 ID。 id 告诉我们哪个元素受到影响,而不是元素拥有的票数。
正如我在对您上一篇文章的回答中提到的,$row['key']
应包含数据库的主键,例如唯一标识符。您的数据库中应该有这样的标识符,否则您无法引用特定的数据库条目。但是,由于我们想要更新特定数据库条目的投票计数,因此我们需要能够唯一标识该数据库条目。
在你的action.php中,你必须执行以下操作:
$action = $_GET['do'];
$id = $_GET['id'];
if ($action=="up") {
mysqli_query($con, "UPDATE champion_counters_b SET upvotes = upvotes + 1 WHERE key = " . $id . "'");
}
elseif ($action=="down") {
mysqli_query($con, "UPDATE champion_counters_b SET downvotes = downvotes - 1 WHERE key = " . $id . "'"); }
else {echo "error: 002 / voting error";}
mysqli_close($con);
我们使用 id 值来选择必须更新的数据库条目。这是通过 UPDATE 语句中的 WHERE key = $id
完成的。当前投票数取自数据库本身 - 无需在 GET 参数中传递当前投票数。
更新数据库后,您可以重定向到原始页面并重新加载表。然后,应该会显示更新后的投票计数。
关于php - 增加值按钮 "mrk2",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21241155/
我有一个列表,看起来像:mot = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0]我需要附加到一个列表,当元素从 0 改变时
我正在尝试增加从 DOM 中获取的值。 该值卡在“1”; 我做错了什么? HTML + Flak JS var flakNr = 1; //Create flak $('#btnAddFla
我希望能够创建一个按钮来增加赞成票数并减少反对票数 $result = mysqli_query($con, "SELECT * FROM champion_counters_b WHERE cham
我有一个 decimal 变量,可以同时从多个线程访问。 Interlocked 类函数根本不支持小数,所以我剩下的唯一方法是使用 lock(){}。这似乎有点矫枉过正。 是否有其他方法以线程安全的方
我在很多论坛上搜索过,问题,在doc但找不到正确的解决方案。 问题 使用 angularfire2 增加值的最佳方法是什么? 我看到我们可以使用 [transaction()][] 但它实际上不适用于
我在一个文件中有以下文本: versionName "1.11.0" 每次运行这样的命令时,我都想增加数字: versionName "1.12.0" versionName "1.13.0" ve
我将对象设置为:{“name”:“alex”,“code”:“123”} 进入sharedPrefrence Calss A: var resBody = {};
我想运行一个循环。我希望它执行 16 次,例如, for (var i = 0; i <= 15; i++) { alert(i); } 我希望这个循环在单击按钮时运行。但循环应该只返回 i 的
我的条目如下所示: 在输入数据之前,必须使用条码扫描仪填写条码。当 Firestore 中存在条形码时,我希望增加产品数量。当条形码在 Firestore 中不可用时,Intent 到另一个类。 代码
好的。我正在尝试使用每行增加的值更新多行。 Update table set value=(.......) where update_row = something... 这可能吗?以下行: ID:
tbl_A [编号 |设施部分 | assigned_no] tbl_B [col1 |列2|发给 | col3 | col_etc] 下拉列表将检索 tbl_A 表的 facility_sectio
tbl_A [id | facility_section | assigned_no] ---------- tbl_B [col1 | col2| issued_to | col3 | col_et
我有一个 Dictionary我正在从列表中读取一些字符串...我想将它们添加到字典中,但是如果该字符串已经在字典中,我希望它的值增加 1。 我试过的代码如下,但是有一些字符串随着每次输入而增加。有什
为什么这样做: val x = Map[Int,Int]() val y = (1, 0) x + y 但不是这个? val x = Map[Int,Int]() x + (1, 0) 产生的错误是:
这是我的代码,用于在 Excel 中提供行号: clusters = 3 rowRef = [9, 12, 15] x = 1 while x < clusters: rowRef[x:] =
当上述路径看起来像这样时,如何增加 img 路径的值? //ab[x]/img X 值增加 1,限制为 50。 尝试编写一个关于如何点击网站上的多张图片的测试用例。 编辑:只是想补充一点,我刚开始使用
我有一个 df 看起来像这样: df dim_pptx qp_pptx diff Absolute Radio 7.39 7.53
我的 node.js 应用程序中有一个 mongoose 模型,代表发票。我已经弄清楚了其中的大部分内容,但我确实需要确保我的发票已编号/递增,以便能够为我的客户提供适当的引用。 使用 SQL 数据库
在我的任务中,我应该修改一个 greenfoot 项目,通过创建私有(private)数据类型并使用 setter 和 getter 来展示对数据封装的理解,以显示游戏中接触和错过的病毒和细菌的值修改
我尝试使用 $inc 增加字段值,但没有取得太大成功。我有以下架构: var postSchema = mongoose.Schema({ title : { type: Stri
我是一名优秀的程序员,十分优秀!