2011-01-25 10 views

Odpowiedz

17

Ponieważ masz ressource mysql kiedy wykonujesz mysql_query().

Użyj czegoś takiego, jak mysql_fetch_assoc(), aby uzyskać następny wiersz. Zwraca tablicę z nazwami kolumn jako indeksami. W twoim przypadku jest to prawdopodobnie COUNT(*).

Oto dylemat i drobne ulepszenia fragmencie:

$rt = mysql_query("SELECT COUNT(*) FROM persons") or die(mysql_error()); 
$row = mysql_fetch_row($rt); 
if($row) 
    echo "<h1>Number:</h1>" . $row[0]; 

Jeśli trzeba uzyskać wszystkie wiersze wynikowego używać tego fragmentu:

while($row = mysql_fetch_assoc($rt)) { 
    var_dump($row); 
} 
1

mysql_query zwraca obiekt zasobów. Najpierw musisz pobrać wiersze (mysql_fetch_row).

1

Prosto z php.net .......

"Dla SELECT, SHOW, opisać wyjaśnić i inne stwierdzenia powrocie resultset, mysql_query() zwraca zasób w przypadku sukcesu lub FALSE w przypadku błędu."

1

Z dokumentacji na mysql_query:

dla wybranych, show, opisują wyjaśnić i innych sprawozdań powrocie resultset, mysql_query() zwraca zasobu w przypadku sukcesu lub FALSE w błędu.

2

mysql_query() nie zwraca wartości, zwraca zasób (patrz here w instrukcji).

Zwrócony zasób wyniku należy przekazać do innej funkcji do obsługi tabel wyników (np. mysql_fetch_array() lub mysql_fetch_assoc()), aby uzyskać dostęp do zwróconych danych.

Przykład na podstawie początkowego kodu:

$rt=mysql_query("SELECT COUNT(*) FROM persons"); 
while($row = mysql_fetch_assoc($rt)) { 
    var_dump($row); 
} 
3

Spróbuj tego:

$rt=mysql_query("SELECT COUNT(*) FROM persons"); 
echo mysql_error(); 
$count = mysql_result($rt, 0, 0); 
echo $count; 
3

W PHP resources są zwracane z pewnych funkcji, dzięki czemu mogą one być przekazywane do innych powiązanych funkcji. Przykłady obejmują połączenia z bazami danych, wyniki zapytań do bazy danych, uchwyty plików itp.

Zgodnie z dokumentacją pod numerem mysql_query() zapytanie SELECT zwraca zasób. Możesz wziąć ten zasób i przekazać go do wielu różnych funkcji.Aby pobrać liczbę wierszy, można użyć mysql_num_rows(), aby pobrać wyniki zapytania, można użyć albo mysql_fetch_array(), mysql_fetch_assoc() lub mysql_fetch_object().

normalnym wzorcem do czynienia z wyników wyszukiwania w bazie będzie wyglądać następująco:

$result = mysql_query("SELECT * FROM persons"); // run query against database 
$count = mysql_num_rows($result); // retrieve a count of the rows in the previous query 
while ($row = mysql_fetch_assoc($result)) { // loop through all the rows in the resultset 
    // use $row['column_name'] to access columns in your resultset 
} 

ze swojego powyższym przykładzie:

$result = mysql_query("SELECT COUNT(*) AS num FROM persons"); // run query against db 
$row = mysql_fetch_assoc($result); // retrieve the 1 (and only) row 
$count = $row['num']; // we needed to alias the COUNT(*) column as `num` 
Powiązane problemy