(PHP 4, PHP 5)

mysql_num_fieldsGet number of fields in result


Această extensie a devenit învechită în PHP 5.5.0 și a fost eliminată în PHP 7.0.0. În locul ei trebuie utilizată extensia MySQLi sau PDO_MySQL. Accesați de asemenea ghidul MySQL: selectarea unei API și FAQ asociat pentru informații suplimentare. Variante alternative pentru această funcție includ:


int mysql_num_fields ( resource $result )

Retrieves the number of fields from a query.



Rezultatul de tip resource, care este evaluat. Acest rezultat provine de la apelul funcției mysql_query ().

Valorile întoarse

Returns the number of fields in the result set resource on success sau FALSE în cazul eșecului.


Example #1 A mysql_num_fields() example

mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
'Could not run query: ' mysql_error();

/* returns 2 because id,email === two fields */
echo mysql_num_fields($result);



Pentru compatibilitatea cu versiunile anterioare, următorul pseudonim învechit poate fi utilizat: mysql_numfields()

A se vedea și

add a note add a note

User Contributed Notes 5 notes

matt at iwdt dot net
14 years ago
here's one way to print out a row of <th> tags from a table
NOTE: i didn't test this

$result = mysql_query("select * from table");

for ($i = 0; $i < mysql_num_fields($result); $i++) {
    print "<th>".mysql_field_name($result, $i)."</th>\n";

post a comment if there's an error
php at jezusisheer dot nl
8 years ago
Note that, if you want to get the amount of columns of a table and you're using the "SHOW COLUMNS FROM $table" query, you will have to use mysql_num_rows() instead of mysql_num_fields() on the result. This becomes logical when thinking about it, because the SHOW COLUMNS query returns a result with six columns (Field, Type, Null, Key, Default and Extra) and with a single row for every column found. If you'd count the number of fields, you'd always get 6. If you count the number of rows, you'll get the amount of columns found.
apass AT passmoore DOT com
13 years ago
Adding to the last comment: you can dynamically loop through any number of  columns AND rows like so-

$query="your SQL";
$result=mysql_query($query) or die("Query ($query) sucks!");

echo "<table>\n<tr>";
for ($i=0; $i < mysql_num_fields($result); $i++) //Table Header
{ print "<th>".mysql_field_name($result, $i)."</th>"; }
echo "</tr>\n";
while ($row = mysql_fetch_row($result)) { //Table body
echo "<tr>";
    for ($f=0; $f < $fields; $f++) {
    echo "<td>$row[$f]</td>"; }
echo "</tr>\n";}
echo "</table><p>";

This has been tested.
tharkey at tharkey dot net
12 years ago
You can use it without a requete, just to list the fields :

$liste_champs = mysql_list_fields ( $Base, $Table, $connexion);

for ($i=0; $i < mysql_num_fields ($l_champs); $i++) {
                        echo ( mysql_field_name ($l_champs, $i) );
                        echo (' / ');
bwark at stanford dot edu
14 years ago
If you just want the number of fields in a table, you can do something like this:

= mysql_connet();
$result = mysql_query("DESCRIBE [tableName], $db_id);

$numFields = mysql_num_rows($result);

Because "
DESCRIBE" returns one row for each field in the table (at least in MySQL), this will work.
To Top