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>";
?>
mysql_fetch_row
(PHP 4, PHP 5)
mysql_fetch_row — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
Описание
$result
)Возвращает массив с числовыми индексами, содержащий данные обработанного ряда, и сдвигает внутренний указатель результата вперед.
Список параметров
-
result -
Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().
Возвращаемые значения
Возвращает массив строк с числовыми индексами, содержащий данные
обработанного ряда, или FALSE, если рядов не осталось.
mysql_fetch_row() обрабатывает один ряд результата, на который ссылается переданный указатель. Ряд возвращается в виде массива. Каждая колонка располагается в следующей ячейке массива, начиная с нулевого индекса
Примеры
Пример #1 Получение одного ряда с помощью mysql_fetch_row()
<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Ошибка запроса: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo $row[0]; // 42
echo $row[1]; // email
?>
Примечания
Замечание: Эта функция устанавливает NULL-поля в значение
NULLPHP.
Смотрите также
- mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
- mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
- mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект
- mysql_data_seek() - Перемещает внутренний указатель в результате запроса
- mysql_fetch_lengths() - Возвращает длину каждого поля в результате
- mysql_result() - Возвращает данные результата запроса
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
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.
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;
}
?>
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";
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.
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.
