Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод из MySQL
 
 автор: MIchail1982   (28.02.2007 в 13:08)   письмо автору
 
 

Задача, вывести данные из таблицы на экран.
Почему-то ыводится только первый столбец
Где я ошибся?

<?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);
?>

   
 
 автор: alfred   (28.02.2007 в 14:47)   письмо автору
 
   для: MIchail1982   (28.02.2007 в 13:08)
 

попробуй поменять функцию обработки строки на

while($a=mysql_fetch_row($query)){
echo "1 - $a[0]<br />
            2- -$a[1]";
}

которая, возвращает выбранную запись в виде массива $a, где каждый элемент массива - это столбец в выбранной записи. тебе нужно знать сколько столбцов в таблице.

   
 
 автор: Trianon   (28.02.2007 в 15:06)   письмо автору
 
   для: alfred   (28.02.2007 в 14:47)
 

Массив, возвращаемый mysql_fetch_row() проиндексирован номерами столбиков результата.
Массив, возвращаемый mysql_fetch_assoc() проиндексирован именами полей столбиков результата (или псевдонимов этих полей).
Массив, возвращаемый mysql_fetch_array() включает в себя содержимое первых двух.
Откровенно говоря, я бы не советовал его использовать, но это наиболее часто применяемый вариант. Вот и у автора вопроса так.

   
 
 автор: alfred   (28.02.2007 в 15:08)   письмо автору
 
   для: Trianon   (28.02.2007 в 15:06)
 

что плохого в том, что этот вариант чсто используется? зато работает...

   
 
 автор: Trianon   (28.02.2007 в 15:15)   письмо автору
 
   для: alfred   (28.02.2007 в 15:08)
 

В том, что часто используется - ничего. :))
Плох сам по себе. Тем, что провоцирует путать имена с номерами.

   
 
 автор: alfred   (28.02.2007 в 15:26)   письмо автору
 
   для: Trianon   (28.02.2007 в 15:15)
 

нужно быть внимательнее...?

   
 
 автор: MIchail1982   (28.02.2007 в 16:28)   письмо автору
 
   для: 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   (01.03.2007 в 11:48)   письмо автору
 
   для: 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);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования