Войти

Показать полную графическую версию : 2 вопроса по выводу данных из Mysql


sadoz1
26-06-2006, 02:52
Здравствуйте!
Столкнулся с проблемами по которым, к сожалению, сам не могу найти ответа.

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

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

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

Scorpion666
26-06-2006, 07:42
А что за язык программирования???
Проблем №2:http://www.idreforma.ru/base.gif
Можно....

sadoz1
26-06-2006, 09:51
PHP

XCodeR
26-06-2006, 10:12
регулярные выражения

Vlad Drakula
26-06-2006, 11:14
sadoz1
1) регулярные выражения
2) можно, даже вроде как очень просто сделать...

benya
26-06-2006, 11:42
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
Я только недавно вынужденно столкнулся с программированием, и поэтому не могли бы Вы немного по подробнее:
1) регулярные выражения
2) можно, даже вроде как очень просто сделать...


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

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

Scorpion666
27-06-2006, 08:52
<?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
С первым большое спасибо! Все работает отлично, единственное подправил здесь $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
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
if ($xxx = '0')
= - присвоить
== - сравнить

if ($xxx == '0')

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




© OSzone.net 2001-2012