【发布时间】:2020-03-21 22:36:24
【问题描述】:
我有两个不同的表,一个命名用户,另一个命名事务。交易包含 wallet1、wallet2、金额。用户包含用户详细信息,例如名字、姓氏和钱包。我正在尝试显示相应的名字和姓氏,具体取决于交易中的 SESSION_wallet 是否等于 wallet1 或 wallet2。我尝试搜索了一段时间,并想出了一个解决方案,可以为进行转移的名字和姓氏显示正确的显示名称,但是,我试图让它显示“转移到:”的正确值
这是我的一些代码,可以更好地理解我的意思:
MySQLi 查询:
$result2 = mysqli_query($link, "SELECT * FROM transactions INNER JOIN users ON transactions.wallet1 = users.wallet WHERE transactions.wallet1 = '" . $_SESSION["wallet"] . "' OR transactions.wallet2 = '" . $_SESSION["wallet"] . "' Order by transactions.id DESC LIMIT 5 ");
PHP 代码:
<?php
if(mysqli_num_rows($result2) > 0)
{
while($row = mysqli_fetch_array($result2))
{
?>
需要显示转出和转入的表格:
<?php
if ($_SESSION["wallet"] == $row["wallet1"]) {
echo "<td>Transfer to ".$row["firstname"]." ".$row["lastname"]."</td>";
}
else if ($_SESSION["wallet"] == $row["wallet2"]) {
echo "<td>Transfer from ".$row["firstname"]." ".$row["lastname"]."</td>";
}
?>
现在我的表格只显示进行转移的用户的名字和姓氏,但是,我需要它来显示进行交易的用户的名字和姓氏。 else if 代码工作正常,但第一部分没有显示相应的值。
【问题讨论】:
-
是进入
if分支只输出echo的静态部分还是根本不进入分支? -
进入if分支,但输出会话的名字和姓氏。它必须输出 transactions.wallet2 的名字和姓氏。
-
警告:您对SQL Injections 持开放态度,应该使用参数化的prepared statements,而不是手动构建查询。它们由PDO 或MySQLi 提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data。 Escaping is not enough!
-
谢谢,但现阶段安全并不重要。我只想现在学习,然后在掌握了窍门后继续改进代码:-)