PHP变量未打印到HTML网页

PHP变量未打印到HTML网页,php,html,Php,Html,我们在其中一个网页的HTML中有以下代码。我们正在尝试使用下面的PHP代码中显示的MySQL调用和while循环来显示数据库中的所有Wifi速度和GPS位置。但是,它不会向页面返回任何内容。我们将echo语句放在PHP的各个部分(例如while循环之前、数据库内容之前),它甚至不会将这些语句打印到网页上 <body> <h2>WiFi Speeds in the System</h2> <p>Speeds Recorded in the Syste

我们在其中一个网页的HTML中有以下代码。我们正在尝试使用下面的PHP代码中显示的MySQL调用和while循环来显示数据库中的所有Wifi速度和GPS位置。但是,它不会向页面返回任何内容。我们将echo语句放在PHP的各个部分(例如while循环之前、数据库内容之前),它甚至不会将这些语句打印到网页上

<body>
<h2>WiFi Speeds in the System</h2>
<p>Speeds Recorded in the System</p>
<?php
  $username = "root";
  $password = "";
  $hostname = "localhost";
  $dbc = mysql_connect($hostname, $username, $password)
    or die('Connection Error: ' . mysql_error());
  mysql_select_db('createinsertdb', $dbc) or die('DB Selection Error' .mysql_error());
  $data = "(SELECT Wifi_speed AND GPS_location FROM Instance)";
  $results = mysql_query($data, $dbc);
  while ($row = mysql_fetch_array($results)) {
      echo $row['Wifi_speed'];
      echo $row['GPS_location'];
  }
?>
</body>

系统中的WiFi速度
系统中记录的速度


此行不正确,因为

$data = "(SELECT Wifi_speed AND GPS_location FROM Instance)";
                            ^^^
将其更改为并使用逗号作为列选择器:

$data = "(SELECT Wifi_speed, GPS_location FROM Instance)";
但是,您应该从查询中删除括号:

$data = "SELECT Wifi_speed, GPS_location FROM Instance";
  • 阅读
    选择
使用:

$results = mysql_query($data, $dbc) or die(mysql_error());
会发出语法错误的信号。然而,您应该在测试期间使用它来查看查询中是否存在错误


旁注:

  • 用于
    选择中的
    WHERE
    子句
即:

SELECT col FROM table WHERE col_x = 'something' AND col_y = 'something_else'
或用于更新,即:

UPDATE table SET col_x='$var1' 
WHERE col_y='$var2' 
AND col_z='$var3'

脚注:

考虑迁移到,或者,因为
mysql\uu
函数已被弃用,并且将从未来的PHP版本中删除


添加到文件的顶部,这将有助于查找错误

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

你好,伙计,我发现你的数据库连接和查询有问题

下面是一个例子,看看这个

in SELECT不正确,为AND。使用逗号作为列选择器:

$data = "(SELECT Wifi_speed, GPS_location FROM Instance)";
并为后置查询和检查数据验证(这是正确的方法)设置条件

<?php 
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "createinsertdb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);  } 
$sql = "SELECT `Wifi_speed `, `GPS_location `,  FROM `Instance`";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
 echo $row['Wifi_speed'];
 echo $row['GPS_location'];
   }
} else {
echo "0 results";
}
$conn->close();
?>


谢谢你的建议,但我们尝试了,但没有改变任何东西。@sichen你做了一次编辑,但没有将其标记为编辑,这可能会使我的答案被否决。@sichen重新加载我的答案我对底部附近的错误报告进行了编辑。加上关于使用
$data=“从实例中选择Wifi\u速度、GPS\u位置”并删除括号。@sichen我必须问这个问题;您正在使用
.php
作为文件扩展名,对吗?另外,您的服务器是否正确配置为PHP/MySQL等。?请重新阅读我的整个答案,并重新加载,以防你看不到编辑。我们将其更改为a.php,但现在它只返回数据库中的第一行。服务器配置正确。您未将其标记为编辑而进行了编辑,这可能会导致我的答案被否决。您可以使用var_dump($results)检查是否有$data中的结果;您可以检查结果是否如Fred-ii所建议的那样给出错误。很明显,当您从数据库中得到结果时,会出现错误。您是否尝试过使用PMA或类似的东西直接对数据库执行相同的查询?mysql_fetch_数组也返回索引,而不是关联数组。您可能想改用mysql_fetch_assoc,但更好的方法是使用mysqli或PDO,因为mysql_*函数已被弃用。我已回滚到您的原始帖子,请。它们不再得到维护,而是在使用。而是学习,并使用。