在php中显示SQL查询结果


Display SQL query results in php

我正在字符串中从sql数据库中显示php中的结果MySQL语句是正确的,可以在phpMyAdmin中执行我想要的操作,但由于某种原因,我的代码在网页中中断

这是代码

require_once('db.php');  
$sql="SELECT * FROM  modul1open WHERE idM1O>=(SELECT FLOOR( MAX( idM1O ) * RAND( ) )  FROM  modul1open) 
ORDER BY idM1O LIMIT 1"
$result = mysql_query($sql);
echo [$result];
  • 这是我得到的

通常,我需要由表id 限制从最小到最大的随机数

您需要从查询中获得的结果集的每一行中获取数据。您可以为此使用mysql_fetch_array()

// Process all rows
while($row = mysql_fetch_array($result)) {
    echo $row['column_name']; // Print a single column data
    echo print_r($row);       // Print the entire row data
}

将您的代码更改为:

require_once('db.php');  
$sql="SELECT * FROM  modul1open WHERE idM1O>=(SELECT FLOOR( MAX( idM1O ) * RAND( ) )  FROM  modul1open) 
ORDER BY idM1O LIMIT 1"
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
    echo $row['fieldname']; 
}

您需要执行while循环以从SQL查询中获得结果,如下所示:

require_once('db.php');  
$sql="SELECT * FROM  modul1open WHERE idM1O>=(SELECT FLOOR( MAX( idM1O ) * RAND( ) )    
FROM modul1open) ORDER BY idM1O LIMIT 1";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    // If you want to display all results from the query at once:
    print_r($row);
    // If you want to display the results one by one
    echo $row['column1'];
    echo $row['column2']; // etc..
}

此外,我强烈建议不要使用mysql_*,因为它已被弃用。而是使用mysqliPDO扩展名。你可以在这里阅读更多。

使用mysql_query()不能直接看到查询结果。它只是在mysql中触发查询,而不是其他。

为了得到结果,你必须在你的脚本中添加一些小东西,比如

require_once('db.php');  
 $sql="SELECT * FROM  modul1open WHERE idM1O>=(SELECT FLOOR( MAX( idM1O ) * RAND( ) )  FROM  modul1open) ORDER BY idM1O LIMIT 1";
 $result = mysql_query($sql);
 //echo [$result];
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    print_r($row);
}

这会给你结果。

奇怪的是,其他答案中的while循环都不适用于我,它们没有抛出错误,但它们的回声是空的。它在使用foreach时起作用:
foreach($result as $row) {
    //echo $row['column_name']; // Print a single column data
    echo print_r($row);       // Print the entire row data
}

想法来自:PDO循环通过并打印fetchAll

我不得不更改

$result = mysql_query($sql);

$result = $conn->query($sql);

然后使用foreach(由于问题42)

$result = $conn->query($sql);
foreach($result as $row) {
    echo $row['column_name'];
}

不知道这是否重要,但是,我在一家托管公司:Apache 2.4.51版PHP版本7.3.33MySQL版本5.6.41-84.1

$query ="
  SELECT 
   *
  FROM
    users
";
die($query);

在这种情况下,您在浏览器上打印的查询复制此查询并在SQL Server上运行。