web-dev-qa-db-ja.com

PHPでのSQLクエリ結果の表示

私はSQLデータベースからPHPの結果を表示しようとしています

ここにコードがあります

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によって最小から最大に制限された乱数が必要です

8
user3052127

クエリから取得した結果セットの各行からデータを取得する必要があります。これには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']; 
}

次のように、SQLクエリから結果を取得するには、whileループを実行する必要があります。

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_ *は廃止されているため使用しないことを強くお勧めします。代わりに、mysqliまたはPDO拡張子を使用します。詳細については、こちらをご覧ください こちら

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);
}

これにより結果が得られます。

2
Neeraj Kumar