为什么这段代码什么都不做?他没有回应结果...... 此脚本的目标是回显列的平均值(小数点后两位)。
<?php
if (isset($_GET["age"]));
$age = ($_GET["age"]);
include($_SERVER["DOCUMENT_ROOT"] . "/3/includes/config.php");
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT AVG(price) FROM data WHERE age= '$age'") or die("Error: " . mysqli_error($con));
while($row = mysqli_fetch_array($result));
echo $row['price'];
die();
?>
答案 0 :(得分:4)
您已经在循环之后有效地放置了echo
语句:
while($row = mysqli_fetch_array($result));
^ this is the problem
echo $row['price'];
...与:
相同while($row = mysqli_fetch_array($result)) {}
echo $row['price'];
在循环$row
之后将false
,因此不会回显任何内容。
你想:
while($row = mysqli_fetch_array($result))
echo $row['price'];
或(更好,因为它会避免这些错误...):
while($row = mysqli_fetch_array($result)) {
echo $row['price'];
}
您应该使用预准备语句来避免现在的SQL注入问题。
答案 1 :(得分:1)
在这里检查你的while循环是错误的
while($row = mysqli_fetch_array($result)){
echo $row['price'];
}
应该是
var urls = document.getElementsByClassName('name')
var txt = ""
for (i = 0; i < urls.length; i++) {
txt += "wget " + urls[i].href +"\n"
}
alert(txt)
答案 2 :(得分:1)
检查你的第一个条件语句和你的while循环。我已经重构了您的代码并包含解释修复的注释。希望这能帮到你!
<?php
//Add braces to your conditional here encapsulating the block of code you want to run if the condion is true. Your code is dependent on $_GET['age'], so you don't want to run it if you don't have that data.
if (isset($_GET["age"])) {
$age = ($_GET["age"]);
include($_SERVER["DOCUMENT_ROOT"] . "/3/includes/config.php");
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT AVG(price) FROM data WHERE age= '$age'") or die("Error: " . mysqli_error($con));
//You also need to make sure that you are encapsulating the proper code in your while loop, as well.
while($row = mysqli_fetch_array($result)) {
echo $row['price'];
} //close while loop
die();
} //close if statement ?>
正如上面提到的@jeroen所说,你应该使用预处理语句,我还建议使用面向对象的mysqli和程序。 http://php.net/manual/en/mysqli.quickstart.prepared-statements.php