php - "Undefined variable"当php函数从mysql数据值中选择时

标签 php mysql function select

新手问题。这个问题一定有一个简单的答案,但我花了几个小时搜索,包括在 StackOverflow 中(也在重复问题中),但没有结果。请帮忙。

我在数据库中有一个表,我正在尝试迭代它。

简化表格如下:
id(int,自动递增),product_name(varchar),price1(int)

1,小部件1,1000
2、widget2、900
等等

当我使用此代码时,它可以工作

    <?php
    $connection = mysqli_connect("localhost", "root", "", "test");

    $item = 'widget1';
    $sql = "SELECT * FROM gym_eqpt WHERE product_name = '$item' ";
    $results = mysqli_query($connection, $sql);
    while($result = mysqli_fetch_array($results)) {
    echo "<p>item name: " . ($result['product_name']) . "<br />" . "<p>item price: " . number_format($result['price1']) . " </p>";
}
?>

但是,当我尝试在函数内使用相同的代码时,出现“ undefined variable ”错误。

<?php
function iteratePrice($item) {
    $sql = "SELECT * FROM gym_eqpt WHERE product_name = '$item' ";
    $results = mysqli_query($connection, $sql);
    while($result = mysqli_fetch_array($results)) {
    echo "<p>item name: " . ($result['product_name']) ."<p>item price: " . number_format($result['price1']) . " </p>";
    }   
}

iteratePrice('widget1');
?>

最终,我想在同一页面上的不同 html div 中使用此函数,在每个 div 中调用每个产品名称和价格。

最佳答案

所有外部变量在函数内部都是未知的,因此,如果将外部值作为参数传递会更好:

function iteratePrice($connection, $item) {
    $sql = "SELECT * FROM gym_eqpt WHERE product_name = '$item' ";
    $results = mysqli_query($connection, $sql);
    while($result = mysqli_fetch_array($results)) {
    echo "<p>item name: " . ($result['product_name']) ."<p>item price: " . number_format($result['price1']) . " </p>";
    }   
}

然后将其称为:

iteratePrice($connection, 'widget1');

这是有关 php 函数和作用域的文档: http://php.net/manual/en/language.variables.scope.php

关于php - "Undefined variable"当php函数从mysql数据值中选择时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52397063/

相关文章:

php - 如何根据第一个条件结果对 Laravel 查询构建器进行排序

mysql - 如何检查表中是否存在多对多对多...

Python 信用卡验证

python - 从函数调用时显示混淆矩阵

php - 魔法 setter/getter / setter/getter 未被调用

mysql - 将字段复制到另一个字段,不同的行,其中 id = parentID

javascript - 简单的jquery输入名称表单验证

function - Go 的 struct 方法在调用中抛出太多参数

PHPUnit 使用 dataProvider 返回 "Data set #0 is invalid."

php - 如何使用 PHP/jQuery 列出文件夹中的所有文件