Автор Тема: вывод в виде таблицы  (Прочитано 6766 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dema

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
вывод в виде таблицы
« : 02 Мая 2003, 23:18:45 »
есть некий скрипт в perle в котором имеется запрос к базе данных mysql как сделать так чтобы он в htmle выдавал в виде таблицы а то он выдает только в одну строку. :(

Оффлайн Nevermind

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 52
  • +0/-0
  • 0
    • Просмотр профиля
вывод в виде таблицы
« Ответ #1 : 03 Мая 2003, 06:44:26 »
1. Делаешь запрос к базе
2. Пишешь открывающий тэг таблицы
3. В цикле выводишь результаты запроса с тэгами
4. Пишешь закрывающий тэг таблицы

На PHP это будет примерно так:
$q=mysql_query("SELECT * FROM bla-bla");
echo(
"<table");
while(
$row=mysql_fetch_array($q)) {
echo(
"<tr><td>".$row[0]."</td></tr>");
};
echo(
"</table>");

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
вывод в виде таблицы
« Ответ #2 : 03 Мая 2003, 10:21:02 »
На перле выглядеть будет примерно так же, только вместо echo() используй print без скобок.
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Dema

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
вывод в виде таблицы
« Ответ #3 : 03 Мая 2003, 23:26:28 »
Мой скрипт выглядит так:
#!/usr/bin/perl
use CGI;
print "Content-Type:text/html\\n\\n";
print "

test


\\n";
use dbi;
use Mysql;
$dbh = Mysql->connect($localhost, $ddd, $root);
$dbh->selectdb("ddd");
$sth = $dbh->query("select film from records");
@arr = $sth->FetchRow;
# $count = $#arr; # Figure out how many elements.
 $count = $#arr;
 print "" .$arr;
 print "
" .$count;
for ($i=0;$i<=$count;$i++) { # Print out the table names.
print "";
 # здесь надо сделать разбивку каждой строки на поля
 # и в цикле их выводить
 @columns = split (/~/,$arr);
 $num_of_columns =scalar(@columns);
  for ($j=0; $j<= $num_of_columns; $j++) {
  print "".$columns[$j]."";
 }

 print "";
 }

 print "\\n";

выдает только первую строку help me, please

Оффлайн Alone

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 182
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
вывод в виде таблицы
« Ответ #4 : 04 Мая 2003, 00:56:25 »
http://phpclub.unet.ru/tutor/mysql/perl_api.htm#FetchRow

print "" .$arr;
print "
" .$count;
зачем это? это не правильно с точки зрения HTML

Оффлайн Dema

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
вывод в виде таблицы
« Ответ #5 : 04 Мая 2003, 11:54:09 »
это так для себя писал. эти строчки можно не смотреть. без них тоже не работает.

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
вывод в виде таблицы
« Ответ #6 : 05 Мая 2003, 08:40:47 »
Цитировать
Dema:
@arr = $sth->FetchRow;
и все что выше на твоей совести :)
а дальше можно:

# $count = @arr; # Figure out how many elements.
$count = @arr;
print "All elements - $count
";
print "";
for (@arr) { # Print out the table names.
print "";
# здесь надо сделать разбивку каждой строки на поля
# и в цикле их выводить
@columns = split /~/,$_; #очень может быть что и  /\\~/
$num_of_columns=1;
for (@column) {print ""}
print "";
}
print "
$num_of_columns$_
\\n";
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Dema

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
вывод в виде таблицы
« Ответ #7 : 07 Мая 2003, 23:03:33 »
Mog спасибо за ответ но мне нужно не количество а сама строка к которой идет запрос да еще и в виде таблицы если знаешь подскажи пожалуйста.

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
вывод в виде таблицы
« Ответ #8 : 08 Мая 2003, 15:39:57 »
Чесно гря я не знаток БД, поэтому
Цитировать
Mog.:
@arr = $sth->FetchRow;
и все что выше на твоей совести

Я не в курсе насколько правильно @arr = $sth->FetchRow;
Но если это  правильно то @arr содержит как минимум одну строку
$count = @arr; - собсно число строк вынутых из БД
Все остальное - разбиение строк по разделителю "~" и вывод их в виде таблицы.
Я не говорил, что то, что написано тобой работает неправильно.
Цитировать
Dema:
выдает только первую строку help
чета мне кажется что в @arr одна строка и грузиться
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
вывод в виде таблицы
« Ответ #9 : 08 Мая 2003, 16:19:30 »

while(@arr = sth->fetchrow_array) {
 print "";
    foreach(@arr) {
       print "", $_, "";
    }
 print "";
}
Не все коту матрица.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
вывод в виде таблицы
« Ответ #10 : 08 Мая 2003, 16:21:42 »
[OFF]Только этот топик к html`у не относится[/OFF]
Не все коту матрица.

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
вывод в виде таблицы
« Ответ #11 : 08 Мая 2003, 16:23:55 »
А вот и help
Цитировать
Croaker:
while(@arr = $sth->fetchrow_array)
Потому и была значитца тока первая строка
[off]Да уж, не html, эт верно[/off]
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
вывод в виде таблицы
« Ответ #12 : 08 Мая 2003, 16:37:55 »
да нет. Хотя я никогда не видел $sth->fetchrow (ща специально посмотрел в perldoc - не нашел), не факт, что его нет. Скорее всего это альтернативная запись (как $sth->fetch для $sth->fetchrow_array).

Ошибка в том, что $sth->fetchrow_array() (ди а любой другой), возвращают массив, содержащий записи только одной строки. Соответсвенно тебе его надо в цикле пускать, а ты его только один раз делаешь. Потому и одна строка.
Не все коту матрица.

Оффлайн Dema

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 26
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
вывод в виде таблицы
« Ответ #13 : 09 Мая 2003, 12:13:35 »
народ спасибо большое за ответы все работает нормально но я чего собственно на этот топик  писал. как сделать так, чтобы html выдавал результат запроса не в одну строку а в виде таблицы.

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
вывод в виде таблицы
« Ответ #14 : 09 Мая 2003, 20:07:40 »
Таки у тебя не получилось что ли !?
Все болезни от нервов, только сифилис от удовольствия

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28