2012-09-15 34 views
6

Đây là bảng structure-CHỌN MAX (... không trở về bất cứ điều gì trong PHP/MYSQL

Table: test 

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

PAGE là một Primary với datatype INT(11). Nó không tự động tăng. NỘI DUNG là của datatype TEXT .

Trong PHP tôi do-

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

Không đầu ra. Tại tất cả. Nếu tôi làm điều gì đó như echo "Value : ".$row["PAGE"]; tất cả tôi thấy là Value :

Truy vấn SELECT * FROM test chỉ hoạt động tốt. Tôi có sai ở đâu đó bằng cách sử dụng cú pháp MAX() không?

Tôi muốn nó trả lại giá trị tối đa là PAGE.

+4

Mọi thứ có vẻ ổn cả .. bạn có thể thử sử dụng điều này không truy vấn 'SELECT MAX (PAGE) như PAGE FROM test' thay vào đó và xem liệu có bất kỳ sự khác biệt nào không? – InSane

+0

Cảm ơn rất nhiều. Nó hoạt động. Đã đấu tranh với điều này trong một thời gian dài. –

+3

Vui lòng ngừng viết mã mới với các hàm mysql_ * cũ. Chúng không còn được duy trì và cộng đồng đã bắt đầu [quá trình phản đối] (http://news.php.net/php.internals/53799). Thay vào đó bạn nên tìm hiểu về các câu lệnh đã chuẩn bị và sử dụng [PDO] (http://php.net/pdo) hoặc [MySQLi] (http://php.net/mysqli). Nếu bạn quan tâm để tìm hiểu, [đây là một hướng dẫn liên quan đến PDO khá tốt] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). – DCoder

Trả lời

8

Đây phải là mã.

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

Bạn không có dấu ngoặc kép xung quanh truy vấn đó trong mysql_query? Tôi không biết PHP sẽ làm gì với một câu lệnh không đầy đủ cú pháp như vậy, tôi đã nghĩ nó sẽ cho bạn một lỗi.

Trong mọi trường hợp, hàm tổng hợp có thể có tên cột khác với cột được sử dụng cho nó (từ bộ nhớ, DB2 cung cấp tên tương tự cho hàm, như max_page_ hoặc một cái gì đó). Bạn có thể muốn đảm bảo nó có tên cột chính xác bằng cách buộc tên với một cái gì đó như:

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

Tôi nghĩ anh ta đã nhầm lẫn nó, vì anh ta sẽ nhận được một lỗi không chỉ là không có gì khác. – 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

Có một "{" quá nhiều hoặc quá ít, tôi nghĩ vậy. – Cleb

+0

Chỉ cần lưu ý nhanh. 'mysql_query' và' mysql_fetch_array' không được chấp nhận. –

+0

Trong khi mã này có thể trả lời câu hỏi, thì tốt hơn là giải thích cách giải quyết vấn đề và tại sao sử dụng nó. Câu trả lời chỉ có mã không hữu ích trong thời gian dài. –

-1

Hãy thử mã dưới đây

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

đâu $con=new mysqli($server,$user,$password,$db_name);page2_content_data là bàn của tôi, và page2_content_id là tên cột

+0

Người dùng của SO có thể đặt hàng câu trả lời bằng nhiều cách, vì vậy, nói về * "câu trả lời ở trên và bên dưới" * hầu như là vô nghĩa. – trincot

Các vấn đề liên quan