Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   2 вопроса по выводу данных из Mysql (http://forum.oszone.net/showthread.php?t=67732)

sadoz1 26-06-2006 02:52 454777

2 вопроса по выводу данных из Mysql
 
Здравствуйте!
Столкнулся с проблемами по которым, к сожалению, сам не могу найти ответа.

Проблема №1: в я чейки таблицы лежит отформатированная статья, где абзацы разбиты тегами <p>. Можно ли сделать так, чтобы выводилась не вся статья из ячейки, а только первые несколько абзацев?

Проблем №2:http://www.idreforma.ru/base.gif

Может быть кто-то сталкивался с подобными задачами?

Scorpion666 26-06-2006 07:42 454786

А что за язык программирования???
Цитата:

Проблем №2:http://www.idreforma.ru/base.gif
Можно....

sadoz1 26-06-2006 09:51 454823

PHP

XCodeR 26-06-2006 10:12 454836

регулярные выражения

Vlad Drakula 26-06-2006 11:14 454855

sadoz1
1) регулярные выражения
2) можно, даже вроде как очень просто сделать...

benya 26-06-2006 11:42 454863

sadoz1
Попробуйте так:

Код:

my %theme = ();
WHILE (...) { #цикл вывода из базы данных ...
$theme{$ln->{'theme'}}{$ln->{'header'}} = $ln->{'page'};
};
foreach my $th (keys %theme) {
print "<b>$th</b><br>\n\n";
foreach my $he (keys %{$theme{$th}}) {
print "Стр. $theme{$th}{$he} $he<br>\n";
};
};

Не знаю на каком языке пишите, но думаю будет что-то очень похожее и на других...

sadoz1 26-06-2006 15:53 454975

Я только недавно вынужденно столкнулся с программированием, и поэтому не могли бы Вы немного по подробнее:
Цитата:

1) регулярные выражения
2) можно, даже вроде как очень просто сделать...
2benya: сейчас использую ПХП, как примерно это в нем будет выглядеть?

benya 26-06-2006 16:35 454985

sadoz1,
А я не использую PHP, как оно будет там выглядеть я не знаю. Может кто-то из пихипишников подскажет. Суть в том что мы выбираем данные и кладем их в хеш массив. У нас как раз будет на выходе сгруппированные данные. Потом внешний цикл перебирает все "theme", а внутренний - все "header" и "page" которые соответствует "theme". Получаем на выходе, то самое, что вы и хотели.

Scorpion666 27-06-2006 08:52 455185

Код:

<?php
// Задача №1
$st = "Blablabla1<p>Blablabla2<p>Blablabla3<p>Blablabla4";
echo "$st<br><hr>Результат<br>";
$st1 = "";
for ($i = 1; $i<=2; $i++){
$st1 .= "<p>".substr($st, 0, strpos($st, "<p>"));
$st = substr_replace($st, '', 1, strpos($st, "<p>")+3);
}
echo "$st1<hr>";

// Задача №2
$db_name = "MyDB";
$connection = mysql_connect("localhost") or die("Невозможно подключиться к MySQL.");
$db = mysql_select_db($db_name, $connection) or die("Невозможно выбрать базу данных.");
$result = mysql_query("SELECT * FROM My_Table order by theme");
$st = "";
while ($row = mysql_fetch_object($result)){
        if ($st <> $row->theme){
                $st = $row->theme;
                echo "<h1>$st</h1><br>";
        }
        echo "$row->page $row->header<br>";
}
?>

http://hosting.skif.net/docs/php/index.html

sadoz1 28-06-2006 03:31 455538

С первым большое спасибо! Все работает отлично, единственное подправил здесь
Цитата:

$st = substr_replace($st, '', 1, strpos($st, "<p>")+3);
$st = substr_replace($st, '', 0, strpos($st, "<p>")+3); а то он обрезал так <la-bla-bla... привыводе статьи.

sadoz1 28-06-2006 23:57 455873

Scorpion666

if ($xxx = '0')
{
$st1 = "";
for ($i = 1; $i<=4; $i++)
{
$st1 .= "<p>".substr($st, 0, strpos($st, "<p>"));
$st = substr_replace($st, '', 0, strpos($st, "<p>")+3);
}
echo "$st1<hr>";

}
else echo "$st";
?>

Не подскажите где ошибка? При любых вариантах он выдает только else игнорируя if

Scorpion666 29-06-2006 08:54 455944

Цитата:

if ($xxx = '0')
= - присвоить
== - сравнить

if ($xxx == '0')

Возможно из - за этого. А переменная $xxx точно символьного типа???


Время: 02:56.

Время: 02:56.
© OSzone.net 2001-