2012-09-15 2 views
6

Voici le tableau structure-SELECT MAX (... rien retour en PHP/MYSQL

Table: test 

+------+---------+ 
| PAGE | CONTENT | 
+------+---------+ 
| 1 | ABC | 
+------+---------+ 
| 2 | DEF | 
+------+---------+ 
| 3 | GHI | 
+------+---------+ 

PAGE est un primaire avec INT(11) type de données. Il n'a pas d'incrémentation automatique. Le contenu est du type de données TEXT .

En PHP Je dO-

$result = mysql_query(SELECT MAX(PAGE) FROM test); 
$row = mysql_fetch_array($result); 
echo $row["PAGE"]; 

Pas de sortie. A tout. Si je fais quelque chose comme echo "Value : ".$row["PAGE"]; tout ce que je vois est Value :

La requête SELECT * FROM test fonctionne très bien cependant. Ai-je tort quelque part en utilisant la syntaxe MAX()?

Je veux qu'il renvoie la valeur maximale de PAGE pour le moment.

+4

Tout semble bien. Essayez de l'utiliser interrogez plutôt SELECT MAX (PAGE) comme PAGE FROM test' et voyez s'il y a une différence? – InSane

+0

Merci beaucoup. Ça marche. Je me bats avec ça depuis longtemps. –

+3

Veuillez arrêter d'écrire du nouveau code avec les anciennes fonctions mysql_ *. Ils ne sont plus maintenus et la communauté a commencé le [processus de dépréciation] (http://news.php.net/php.internals/53799). Au lieu de cela, vous devriez en apprendre davantage sur les instructions préparées et utiliser [PDO] (http://php.net/pdo) ou [MySQLi] (http://php.net/mysqli). Si vous voulez apprendre, [voici un très bon tutoriel sur les AOP] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). – DCoder

Répondre

8

Cela devrait être le code.

$result = mysql_query("SELECT MAX(PAGE) AS max_page FROM test"); 
$row = mysql_fetch_array($result); 
echo $row["max_page"]; 
1

pas si vous avez des guillemets autour de cette requête dans mysql_query? Je n'ai aucune idée de ce que PHP fera avec une telle déclaration syntaxiquement inadéquate, j'aurais pensé que cela vous aurait donné une erreur.

Dans tous les cas, une fonction d'agrégat peut avoir un nom de colonne différent de la colonne utilisée (de mémoire, DB2 lui donne un nom similaire à la fonction, par exemple max_page_). Vous pouvez vous assurer qu'il a le nom de la colonne correcte en forçant le nom avec quelque chose comme:

$result = mysql_query("SELECT MAX(PAGE) AS MAXPAGE FROM TEST"); 
$row = mysql_fetch_array($result); 
echo $row["MAXPAGE"]; 
+0

Je pense qu'il a juste fait une faute de frappe, car il aurait eu une erreur, pas n'importe quoi autrement. – FluffyJack

0
$connect = mysqli_connect("localhost", "root", "", "carBid") or die("not connected"); 

//connection to database 
$sql2 = "SELECT max(mybid) FROM `bid`"; 

//simle select statement with max function 
$result_set2 = mysqli_query($connect,$sql2); 

//query a result fetch 
if ($result_set2) { 
    $rowB = mysqli_fetch_array($result_set2); 
    //feching a result in array format 
    echo $rowB['max(mybid)']; 
    //accessing array by name of column with max() function of mysql 
} else { 
    echo 'No Current Bid'; 
} 
mysqli_close($connect); 
+0

Il y a un "{" trop ou trop moins, je pense. – Cleb

+0

Juste une note rapide. 'mysql_query' et' mysql_fetch_array' sont obsolètes. –

+0

Bien que ce code puisse répondre à la question, il vaudrait mieux expliquer comment il résout le problème et pourquoi l'utiliser. Les réponses au code uniquement ne sont pas utiles à long terme. –

-1

Essayez ci-dessous le code

$result = mysqli_query($con,"SELECT max(page2_content_id) AS max_page from page2_content_data"); 
$row = mysqli_fetch_array($result); 
echo $row["max_page"]; 

$con=new mysqli($server,$user,$password,$db_name); et page2_content_data est ma table, et page2_content_id est le nom de la colonne

+0

Les utilisateurs de SO peuvent ordonner des réponses de plusieurs façons, donc parler de * "ci-dessus réponse et ci-dessous" * est la plupart du temps vide de sens. – trincot