|
|
|
| Задача, вывести данные из таблицы на экран.
Почему-то ыводится только первый столбец
Где я ошибся?
<?php
include "config.php";
if (!$dbname)
{
print 'База данных не выбрана';
exit;
};
if (!$table)
{
print 'Таблица не выбрана';
exit;
};
mysql_select_db($dbname, $link) or die ("Не могу соединится");
$query = "SELECT * FROM $table;";
mysql_query("SET CHARSET cp1251");
$result = mysql_query($query, $link);
$fields = mysql_num_fields($result);
for ($i=0; $i < $fields; $i++)
{
$name = mysql_field_name($result, $i);
echo $name,"<br>";
while($rows = mysql_fetch_array($result))
{
echo $rows[$name],"<br>";
};
echo $rows[$name],"<br>+++++++++++++++++++<br>";
};
mysql_free_result($result);
mysql_close($link);
?>
|
| |
|
|
|
|
|
|
|
для: MIchail1982
(28.02.2007 в 13:08)
| | попробуй поменять функцию обработки строки на
while($a=mysql_fetch_row($query)){
echo "1 - $a[0]<br />
2- -$a[1]";
}
|
которая, возвращает выбранную запись в виде массива $a, где каждый элемент массива - это столбец в выбранной записи. тебе нужно знать сколько столбцов в таблице. | |
|
|
|
|
|
|
|
для: alfred
(28.02.2007 в 14:47)
| | Массив, возвращаемый mysql_fetch_row() проиндексирован номерами столбиков результата.
Массив, возвращаемый mysql_fetch_assoc() проиндексирован именами полей столбиков результата (или псевдонимов этих полей).
Массив, возвращаемый mysql_fetch_array() включает в себя содержимое первых двух.
Откровенно говоря, я бы не советовал его использовать, но это наиболее часто применяемый вариант. Вот и у автора вопроса так. | |
|
|
|
|
|
|
|
для: Trianon
(28.02.2007 в 15:06)
| | что плохого в том, что этот вариант чсто используется? зато работает... | |
|
|
|
|
|
|
|
для: alfred
(28.02.2007 в 15:08)
| | В том, что часто используется - ничего. :))
Плох сам по себе. Тем, что провоцирует путать имена с номерами. | |
|
|
|
|
|
|
|
для: Trianon
(28.02.2007 в 15:15)
| | нужно быть внимательнее...? | |
|
|
|
|
|
|
|
для: alfred
(28.02.2007 в 14:47)
| | Выводит не совсем так, как хотелосьбы ( Id это назв.столбца )
Id
1
Главная
Pages/Main.php
I1
а хотелось бы
ID
1
2
...
Name
Главная
Форум
...
Link
Pages/Main.php
PHPbb2/index.php
...
Target
I1
_blank
...
(мне потом таблицу строить) | |
|
|
|
|
|
|
|
для: MIchail1982
(28.02.2007 в 16:28)
| | ПОсетила меня прогерская муза :))
<?php
include "config.php";
if (!$dbname)
{ print 'База данных не выбрана';
exit; };
if (!$table)
{ print 'Таблица не выбрана';
exit; };
mysql_select_db($dbname, $link) or die ("Не могу соединится");
if (isset($action))
{
if ($action=='DEL')
{$query="DELETE FROM $table WHERE id=$id;";
$result = mysql_query($query, $link);
};
if ($action=='ADD')
{$val="";
for ($i=0; $i < $fields; $i++)
{
if ($i==($fields-1))
{$val=$val."'".$add[$i]."'";}
else
{$val=$val."'".$add[$i]."', ";};
};
$query="INSERT INTO $table VALUES ($val);";
$result = mysql_query($query, $link);
};
};
$query = "SELECT * FROM $table;";
mysql_query("SET CHARSET cp1251");
$result = mysql_query($query, $link);
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
echo "<table border=1><tr>";
for ($i=0; $i < $fields; $i++)
{
$name = mysql_field_name($result, $i);
echo "<td>$name</td>";
};
echo "<td>Действия</td></tr>";
for ($k=0; $k < $rows; $k++)
{
echo "<tr>";
$row=mysql_fetch_row($result);
for ($j=0; $j < $fields; $j++)
{
echo "<td>$row[$j]</td>";
};
echo "<td><a href=View.php?action=DEL&table=$table&id=$row[0]>Удалить</a></td></tr>";
};
echo "<tr><form name='add' target='_self' method='POST' action='View.php'>
<input type=hidden name=table value=$table>
<input type=hidden name=fields value=$fields>
<input type=hidden name=action value=ADD>";
for ($add=0; $add < $fields; $add++)
{
echo "<td><input name=add[$add] type='text'></td>";
};
echo "<td align=center colspan=2><input type='submit' name='submit' value='Добавить'></td></form></tr>";
echo "</table>";
mysql_free_result($result);
mysql_close($link);
?>
|
| |
|
|
|