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