Показать полную графическую версию : 2 вопроса по выводу данных из Mysql
Здравствуйте!
Столкнулся с проблемами по которым, к сожалению, сам не могу найти ответа.
Проблема №1: в я чейки таблицы лежит отформатированная статья, где абзацы разбиты тегами <p>. Можно ли сделать так, чтобы выводилась не вся статья из ячейки, а только первые несколько абзацев?
Проблем №2:http://www.idreforma.ru/base.gif
Может быть кто-то сталкивался с подобными задачами?
Scorpion666
26-06-2006, 07:42
А что за язык программирования???
Проблем №2:http://www.idreforma.ru/base.gif
Можно....
Vlad Drakula
26-06-2006, 11:14
sadoz1
1) регулярные выражения
2) можно, даже вроде как очень просто сделать...
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";
};
};
Не знаю на каком языке пишите, но думаю будет что-то очень похожее и на других...
Я только недавно вынужденно столкнулся с программированием, и поэтому не могли бы Вы немного по подробнее:
1) регулярные выражения
2) можно, даже вроде как очень просто сделать...
2benya: сейчас использую ПХП, как примерно это в нем будет выглядеть?
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
С первым большое спасибо! Все работает отлично, единственное подправил здесь $st = substr_replace($st, '', 1, strpos($st, "<p>")+3); $st = substr_replace($st, '', 0, strpos($st, "<p>")+3); а то он обрезал так <la-bla-bla... привыводе статьи.
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.