【问题标题】:Replace static array with results from query用查询结果替换静态数组
【发布时间】:2016-06-05 21:53:11
【问题描述】:

请看下面的php函数。我试图让我的查询结果以与下面显示的静态数组相同的格式显示为数组。如何用我的查询结果替换该静态数组?提前致谢。

<?php
$mysqli = new mysqli("xxx", "xxx", "xxx", "xxx");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT event_id, event_name FROM events ORDER by event_id";
$result = $mysqli->query($query);
$row = $result->fetch_array(MYSQLI_BOTH);

function get_price($find){
    $books=array(
        "java"=>266,
        "c"=>250,
        "php"=>320
        );

    foreach($books as $book=>$price)
    {
        if($book==$find)
        {
            return $price;
            break;
        }
    }
}
?>

【问题讨论】:

  • 您的示例有点不清楚...首先您的代码指向“事件”,但随后您将使用“书籍”...究竟是什么?
  • @Raphioly-San 我正在尝试使 $books = sql 数组结果。就是这样
  • 一些合理的代码缩进是个好主意。它帮助我们阅读代码,更重要的是,它将帮助您调试代码 Take a quick look at a coding standard 为您自己谋福利。您可能会被要求在几周/几个月内修改此代码,最后您会感谢我的。

标签: php arrays mysqli


【解决方案1】:

正如您所说:通常您会创建一个数组,然后用数据库中找到的所有项目(或您要从中获取它的任何来源)填充它。

旁注:指示 MySQLi 扩展同时获取关联和数字有点浪费时间(而且很耗时,因为处理器必须在两者上花费周期)。

看起来像这样:

$array = [];
while ($row = $result->fetch_object()) { // fetch as object, nicer ;)
    $array[$result->title] = $result->price;
}

数组现在看起来像:

$array = [
    'Jungle book' => 26.95,
    'Mowgli' => 24.75,
    'Fantastic Four - E.12-6' => 100
];

【讨论】:

  • 我试图替换函数中 $books=array( "java"=>266, "c"=>250, "php"=>320 );与 SQL 结果
  • 然后用你想要的任何东西初始化数组$array = [],仍然像上面一样运行它......
猜你喜欢
  • 2016-12-04
  • 2021-06-02
  • 2020-11-02
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
相关资源
最近更新 更多