gpt4 book ai didi

php - 为什么我的代码只从数据库返回一行?

转载 作者:行者123 更新时间:2023-11-29 07:28:57 25 4
gpt4 key购买 nike

这是我正在处理的代码,它只从数据库返回一行

    $positions =[];
$rows= query("SELECT symbol,shares from portfolio where id=?",
$_SESSION["id"]);
foreach($rows as $row)

{

$stock =lookup($row["symbol"]);

if($stock!== false){
$positions =[
"symbol" =>$row["symbol"],
"nam" =>$stock["name"],

"shares" => $row["shares"],
"pric" =>$stock["price"],
"total" => $stock["price"] * $row["shares"]
];
}
}
render("portfolio.php",["ways" =>$positions,"title"=>"Portfolio"] );

查找是函数。下面的代码是portfolio.php的

<?php foreach($ways as $position =>$values) : ?>

<th>
<?= $values ?>
</th>
<?php endforeach ?>

下面是上面(最上面)代码中声明的查询函数。

 function query(/* $sql [, ... ] */)
{
// SQL statement
$sql = func_get_arg(0);

// parameters, if any
$parameters = array_slice(func_get_args(), 1);

// try to connect to database
static $handle;
if (!isset($handle))
{
try
{
// connect to database
$handle = new PDO("mysql:dbname=" . DATABASE . ";host=" . SERVER, USERNAME, PASSWORD);

// ensure that PDO::prepare returns false when passed invalid SQL
$handle->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch (Exception $e)
{
// trigger (big, orange) error
trigger_error($e->getMessage(), E_USER_ERROR);
exit;
}
}

// prepare SQL statement
$statement = $handle->prepare($sql);
if ($statement === false)
{
// trigger (big, orange) error
trigger_error($handle->errorInfo()[2], E_USER_ERROR);
exit;
}

// execute SQL statement
$results = $statement->execute($parameters);

// return result set's rows, if any
if ($results !== false)
{
return $statement->fetchAll(PDO::FETCH_ASSOC);
}
else
{
return false;
}
}

最佳答案

因为在你的 SQL 中你定义了一个特定的 ID,它通常只能是一个

i.e.  where id=?

因此,如果您需要更多结果,则必须扩大您的标准

e.g. WHERE id > 5 AND id < 10

关于php - 为什么我的代码只从数据库返回一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33455608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com