【发布时间】:2014-10-22 23:28:04
【问题描述】:
关于在循环中使用变量的另一个问题。我有两个具有以下列的 mysql 数据库:
country_db(这是数据库的名称) 国家的名字 country_cit_rate 国家级
company_db(这是数据库的名称) 公司名 公司国家 公司级别
我想为每个公司(由“company_name”定义)进行一些计算,这些计算应该从最高级别(“company_level”)运行到编号为 1 的 company_level。
因此我创建了以下循环($level_max 之前定义为 company_db 中的最高 company_level):
do
{
echo "The number is: $level_max <br>";
$company_variables_array = mysqli_query($con,"SELECT company_name, company_country FROM company_db WHERE company_level=$level_max");
while($company_variables_fetch = mysqli_fetch_array($company_variables_array))
{
$company_name = $company_variables_fetch['company_name'];
$company_country = $company_variables_fetch['company_country'];
echo $company_name;
echo $company_country;
}
$level_max--;
}
while ($level_max>0);
通过使用 echo 语句,我可以看到代码完全按照我的意愿工作。
但是,我已经为下一步苦苦挣扎了两天。对于循环中的每家公司,我想在“country_db”的“country_cit_rate”列中获取相关值。由于 $company_country 已在循环中定义,我希望这是一个简单的步骤,但我收到以下错误消息:“警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,在 XXX 行 XXX 中给出的布尔值 em>"
我习惯了以下代码:
do
{
echo "The number is: $level_max <br>";
$company_variables_array = mysqli_query($con,"SELECT company_name, company_country FROM company_db WHERE company_level=$level_max");
while($company_variables_fetch = mysqli_fetch_array($company_variables_array))
{
$company_name = $company_variables_fetch['company_name'];
$company_country = $company_variables_fetch['company_country'];
echo $company_name;
echo $company_country;
$company_country_cit_rate_array = mysqli_query($con,"SELECT country_cit_rate FROM country_db WHERE country_name=$company_country");
$company_country_cit_rate_fetch = mysqli_fetch_array($company_country_cit_rate_array);
$company_country_cit_rate = $company_country_cit_rate_fetch['country_cit_rate'];
echo $company_country_cit_rate . "%";
}
$level_max--;
}
while ($level_max>0);
我做错了什么?
【问题讨论】:
-
原因很可能是因为这个
WHERE country_name=$company_country");是一个字符串,因此你需要引用变量WHERE country_name='$company_country'");布尔错误解释它。如果它是int,那么它会起作用,但我非常怀疑它是否有效。 -
编辑此行以包含以下内容:
$company_country_cit_rate_array = mysqli_query($con,"SELECT country_cit_rate FROM country_db WHERE country_name=$company_country") or die(mysqli_error($con));并发布结果。我的猜测是查询失败。 -
太好了,谢谢!这正是 Fred -ii- 所建议的,谢谢大家:-)))
-
不客气。我会将其作为答案,您可以接受,我们可以关闭问题并将其标记为已解决。 @dathiezer 方法如下 => meta.stackexchange.com/a/5235