PHP Doku:: Liefert einen Datensatz als indiziertes Array - function.mysql-fetch-row.html

Verlauf / Chronik / History: (4) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenMySQLMySQL Funktionenmysql_fetch_row

Ein Service von Reinhard Neidl - Webprogrammierung.

MySQL Funktionen

<<mysql_fetch_object

mysql_field_flags>>

mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_rowLiefert einen Datensatz als indiziertes Array

Beschreibung

array mysql_fetch_row ( resource $Ergebnis-Kennung )

Rückgabewert: Ein Array das der Ergebniszeile entspricht oder FALSE wenn keine weiteren Zeilen verfügbar sind.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-NULL.

mysql_fetch_row() liefert einen Datensatz aus dem Anfrageergebnis mit der übergebenen Kennung. Der Datensatz wird als Array geliefert. Jedes Feld wird in einem Array-Offset abgelegt, der Offset beginnt bei 0.

Wiederholtes Aufrufen von mysql_fetch_row() liefert den nächsten Datensatz des Anfrageergebnisses oder FALSE, wenn keine weiteren Datensätze verfügbar sind.

Beispiel #1 Holen eines Datensatzes mit mysql_fetch_row()

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
    echo 
'Abfrage konnte nicht ausgeführt werden: ' mysql_error();
    exit;
}
$row mysql_fetch_row($result);

echo 
$row[0]; // 42
echo $row[1]; // Der Wert von email
?>

Siehe auch: mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_object(), mysql_data_seek(), mysql_fetch_lengths() und mysql_result().


7 BenutzerBeiträge:
- Beiträge aktualisieren...
jhulbert at redf dot com
19.02.2010 22:32
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
22.02.2008 0:29
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
ryhan_balboa at yahoo dot com
16.11.2007 18:23
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.
m dot s at programmers-online dot net
17.11.2005 10:56
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;
}
?>
mysql at polyzing dot com
13.07.2003 0:05
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";
michael and then an at sign wassupy.com
8.04.2003 9:09
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.
a at simongrant dot org
6.02.2002 14:10
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.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)