php函数从mysql数据值中选择时的“未定义变量”

uqcuzwp8  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(300)

一个新手问题。必须有一个简单的答案,但我花了几个小时搜索,包括在这里的stackoverflow(也在重复的问题),但没有结果。请帮忙。
我在一个数据库中有一个表,我正试图迭代它。
简化表如下:
id(int,自动递增)、产品名称(varchar)、价格1(int)
1,维Git1,1000
维Git2900
等。
当我使用这个代码时,它是有效的

<?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中的每个产品名称和价格。

uujelgoq

uujelgoq1#

函数中的所有外部变量都是未知的,因此,最好将外部值作为参数传递:

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

相关问题