有一个问题让我头疼。我对 PHP 和 MySQL 交互以及一般编码还相当陌生(距离我第一次深入了解它大约 3 个月),所以可以说我仍在学习诀窍。
问题是,我有一个页面通过 $_POST 从另一个页面接收数据。一切都很好。该页面接收数据(即 ID 号),并回显数据库中与该 ID 相对应的可用项目特征。
这部分代码工作得很好。
$sql = "SELECT nome, preco, `status` FROM produtos WHERE id = $_POST[id]";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)){
echo "Nome: "."<span style='color: red;'>".$row["nome"].
"</span>".
"<br>"."Preço: "."<span style='color: red;'>".
"R$".$row["preco"]."</span>"."<br><br>".$row["status"];
}
}
我想要的是将回显的值转换为变量,以便我可以将它们设置为另一种形式的默认值并将其发送到另一个页面。显然,例如 $row['nome'] 无法在上面的实例之外重用。
<form method="post" action="?p=venda">
<input type="text" name="nome" value="<?php echo $row["nome"]; ?>">
<input type="text" name="preco" value="<?php echo $row["preco"]; ?>">
<input type="submit" name="change" value="Efetuar">
</form>
我知道这段代码很容易受到 SQL 注入(inject),但我现在不研究它。这将是一种离线程序,可以帮助我组织一些东西,因此,目前我不必担心安全性(并不是说我会继续忽略这些问题)。
提前致谢。
最佳答案
将 $row 分配给一个变量,并在 while 循环之外将其视为 array()。
$sql = "SELECT nome, preco, `status` FROM produtos WHERE id = $_POST[id]";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)){
$array = $row; // assign $row a variable.
echo "Nome: "."<span style='color: red;'>".$row["nome"].
"</span>".
"<br>"."Preço: "."<span style='color: red;'>".
"R$".$row["preco"]."</span>"."<br><br>".$row["status"];
}
}
// example
echo($array['nome']);
关于php - 将 PHP MySQL 查询输出转换为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39174619/