It is probably worth pointing out that the array elements will actually be of type string, OR NULL if the field is null in the database.
Thus, either use a double equal comparison to look for empty or null
Or, use a triple equal comparison to be able to distinguish the two cases
e.g.
if ($field === '') echo "Empty, not NULL\n";
if ($field === NULL) echo "NULL\n";
if ($field == '') echo "Empty or NULL\n";
mysql_fetch_row
(PHP 4, PHP 5)
mysql_fetch_row — Obtém uma linha como uma array numérica
Descrição
array mysql_fetch_row
( resource
$result
)Retorna uma array numérica que corresponde a linha obtida e move o ponteiro interno dos dados adiante.
Parâmetros
-
result -
The result resource that is being evaluated. This result comes from a call to mysql_query().
Valor Retornado
Retorna uma array numérica de strings que corresponde linha obtida, ou
FALSE se não houverem mais linhas.
mysql_fetch_row() obtém uma linha de dados do resultado associado ao identificador de resultado dado. A linha é retornada como um array. Cada coluna do resultado é salva em um índice da matriz, começando no índice 0.
Exemplos
Exemplo #1 Obtendo uma linha com mysql_fetch_row()
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Não foi possível executar a consulta: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo $row[0]; // 42
echo $row[1]; // o valor do email
?>
Notas
Nota: Esta função assimila campos NULL para o o
NULLdo PHP.
Veja Também
- mysql_fetch_array() - Obtém uma linha como uma matriz associativa, uma matriz numérica, ou ambas
- mysql_fetch_assoc() - Obtém um linha do resultado como uma matriz associativa
- mysql_fetch_object() - Obtém o resultado de uma linha como um objeto
- mysql_data_seek() - Move o ponteiro interno do resultado
- mysql_fetch_lengths() - Obtém o tamanho de cada saída no resultado
- mysql_result() - Retorna dados do resultado
mysql at polyzing dot com ¶
9 years ago
michael and then an at sign wassupy.com ¶
10 years ago
to print an array, simply use print_r(array name)
like this:
$myrow = mysql_fetch_row($result);
echo "<pre>";
print_r($myrow);
echo "</pre>";
this will output the array in a readable form, with the index, too. Don't forget the 'pre' tags or the output will be on a single line.
m dot s at programmers-online dot net ¶
7 years ago
The following function to read all data out of a mysql-resultset, is may be faster than Rafaels solution:
<?
function mysql_fetch_all($result) {
while($row=mysql_fetch_array($result)) {
$return[] = $row;
}
return $return;
}
?>
ryhan_balboa at yahoo dot com ¶
5 years ago
The following are the basic codes to get a specific row from the mysql db into a $row variable:
$query = "SELECT * FROM table";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
And $row[0], $row[1] ... $row[n] are used to access those field values.
Does anyone know how I can add a new field to $row, so that the field count increases from n to n+1?
I have tried treating $row like an array, and tried array_push function, but didn't work.
Thanks.
a at simongrant dot org ¶
11 years ago
Maybe worth pointing out that all the fields returned by this (and other?) calls are returned with type string. This had me puzzled for quite some time.
sarciszewski at knights dot ucf dot edu ¶
1 month ago
If you need to quickly just grab all of a particular column (for example, with a "SELECT DISTINCT a FROM x" query), this quick function will just slice through and fetch an array of the resultant values:
<?
function mysql_slice($query, $colNo=0) {
// Return an array of single columns
if(gettype($query) == 'string') {
$sql = mysql_query($query) or die(mysql_error());
} else {
$sql = $query;
var_dump($query);
}
$array = array();
for($i = 0; $i < mysql_num_rows($sql); $i++) {
$array[] = mysql_result($sql, $i, $colNo);
}
mysql_free_result($sql);
return $array;
}
?>
To use it:
<?
foreach(mysql_slice("SELECT DISTINCT field FROM table") AS $x) {
echo "{$x}\n";
}
// OR
$array = mysql_slice("SELECT DISTINCT field FROM table");
var_dump($array);
?>
jhulbert at redf dot com ¶
3 years ago
Creates table from all db info:
<?php
$qry = "SELECT * FROM exp_member_data";
$res = mysql_query($mem_qry);
function mysql_fetch_all($res) {
while($row=mysql_fetch_array($res)) {
$return[] = $row;
}
return $return;
}
function create_table($dataArr) {
echo "<tr>";
for($j = 0; $j < count($dataArr); $j++) {
echo "<td>".$dataArr[$j]."</td>";
}
echo "</tr>";
}
$all = mysql_fetch_all($res);
echo "<table class='data_table'>";
for($i = 0; $i < count($all); $i++) {
create_table($all[$i]);
}
echo "</table>";
?>
larkitetto at gmail dot com ¶
5 years ago
sry :) note now fixed:
<?php
$esi=mysql_list_tables($db);$ris=mysql_fetch_row($esi);
//example: $db has >= 1 tabs
echo var_dump($ris);
//echoes only array(1). solution:
while($ris=mysql_fetch_row($esi)) echo $ris[0];
/*debug:
$ris=array("1st_tab"); ... $ris=array("n_tab");$ris=false;*/
while ($ris[]=mysql_fetch_row($esi));
//debug:$ris=array(array("1st_tab"), ... array("n_tab"));
echo $ris[n][0];//echo:"n_tab"
echo $ris[0][n];//echo:array | null
?>
hope it helps
