web-dev-qa-db-fra.com

Afficher les résultats des requêtes SQL en php

Je cherche à afficher les résultats en php à partir de la base de données SQL. La déclaration MySQL est correcte et fait ce que je veux dans phpMyAdmin mais pour une raison quelconque mon code casse dans la page Web

voici le code

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];

En général, j'ai besoin d'un nombre aléatoire limité de min à max par l'ID de la table

8
user3052127

Vous devez récupérer les données de chaque ligne de l'ensemble de résultats obtenu à partir de la requête. Vous pouvez utiliser mysql_fetch_array() pour cela.

// 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
}

Changez votre code en ceci:

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']; 
}

Vous devez faire une boucle while pour obtenir le résultat de la requête SQL, comme ceci:

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..

}

Je recommanderais également fortement de ne pas utiliser mysql_ * car il est obsolète. Utilisez plutôt l'extension mysqli ou PDO. Vous pouvez en savoir plus à ce sujet ici .

Vous ne pouvez pas voir directement le résultat de la requête en utilisant mysql_query, cela ne fait que déclencher la requête dans mysql rien d'autre.

Pour obtenir le résultat, vous devez ajouter un peu de choses dans votre script comme

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

Cela vous donnera un résultat;

2
Neeraj Kumar