2012-09-15 12 views
6

powrocie Jest to tabela struktura-SELECT MAX (... niczego w PHP/MySQL

Table: test 

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

PAGE jest podstawowym z typem danych INT(11). To nie auto-inkrementacja. Treść jest od typu danych TEXT .

W PHP I DO-

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

Brak wyjścia. W ogóle. Jeśli zrobię coś podobnego echo "Value : ".$row["PAGE"]; wszystko co widzę to Value :

Zapytanie SELECT * FROM test działa dobrze. Czy mam gdzieś błąd używając składni MAX()?

Chcę, aby zwracała maksymalną wartość PAGE od jeszcze.

+4

Wszystko wydaje się być w porządku. Czy możesz spróbować użyć tego zapytanie "WYBIERZ MAKSYMALNĄ (STRONĘ) jako STRONĘ Z TESTU" i sprawdź, czy jest jakaś różnica? – InSane

+0

Wielkie dzięki. To działa. Zmagałem się z tym przez długi czas. –

+3

Proszę zaprzestać pisania nowego kodu ze starymi funkcjami mysql_ *. Nie są już utrzymywane, a społeczność rozpoczęła proces [procesu deprecacji] (http://news.php.net/php.internals/53799). Zamiast tego powinieneś poznać przygotowane instrukcje i użyć [PDO] (http://php.net/pdo) lub [MySQLi] (http://php.net/mysqli). Jeśli chcesz się uczyć, [tutaj jest całkiem dobry samouczek dotyczący PDO] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). – DCoder

Odpowiedz

8

To powinien być kod.

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

Nie powinieneś mieć ofert z tego zapytania w mysql_query? Nie mam pojęcia, co PHP zrobi z takim składniowo nieodpowiednim stwierdzeniem, pomyślałbym, że dałoby ci błąd.

W każdym przypadku funkcja agregująca może mieć inną nazwę kolumny niż kolumna użyta dla tej funkcji (z pamięci, DB2 nadaje jej podobną nazwę do tej funkcji, na przykład max_page_ lub coś podobnego). Możesz mieć pewność, że ma właściwą nazwę kolumny zmuszając nazwę z czymś takim:

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

Myślę, że po prostu źle wpisał to, ponieważ dostałby błąd, nie tylko nic. – 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

Istnieje jeden "{" za dużo lub za mało, jak sądzę. – Cleb

+0

Po prostu krótka notatka. 'mysql_query' i' mysql_fetch_array' są przestarzałe. –

+0

Podczas gdy ten kod może odpowiedzieć na pytanie, lepiej byłoby wyjaśnić, w jaki sposób rozwiązuje problem i dlaczego go używać. Odpowiedzi tylko na kod nie są przydatne na dłuższą metę. –

-1

Try poniższym kodzie

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

Gdzie $con=new mysqli($server,$user,$password,$db_name); i page2_content_data jest mój stół, i page2_content_id to nazwa kolumny

+0

Użytkownicy SO mogą zamówić odpowiedzi na kilka sposobów, więc mówienie * "powyżej odpowiedzi i poniżej" * jest w większości bez znaczenia. – trincot