Консультация № 141018
29.07.2008, 21:59
0.00 руб.
0 3 2
Всем привед :)
немогли бы вы мне помочь? вот скажите что я не так в коде накосячил..в частности в DO WHILE
Почему при попытке вывести 6 статей..у меня выводится одна и причем выводится бесконечно...и еще скинул SQL запросы..посмотрите пожалуйста...Статья выводиться под Id 1 только...

Приложение:
<?php
include ("connect.php");
$result = mysql_query ("SELECT * FROM site_news WHERE author='zeloras'",$db);
$news_viewe = mysql_fetch_array ($result);
do {
printf ("<table border='1'>
<tr><td>
<a href='view_lesson.php?id=%s'>%s</a>
</td></tr>
<tr><td>
<p>%s</p>
</td></tr>
<tr><td>
<p>Автор: %s</p>
</td></tr>
</table>
",$news_viewe["id"],$news_viewe["title"],$news_viewe["news"], $news_viewe["author"]);
}
while ("$news_viewe = mysql_fetch_array ($result)");


function site_news($db) {
$per_page=2; // сколько афоризмов на страницу

$content="";
$n=(isset($_GET['n']))?intval($_GET['n']):1;
if ($n<1) $n=1;

$query="select count(*) from site_news";
@$result=$db->query($query);
if (isset($result)) {
@$row=$result->fetch_assoc();
if (isset($row)) {
$count=$row['count(*)'];
$nn=($n-1)*$per_page;
$query="select author, text from aphorisms order by ID limit $nn, $per_page";
@$result=$db->query($query);
if (isset($result)) {
@$num=$result->num_rows;
if ((isset($num))and($num>0)) for ($i=0; $i<$num; $i++) {
@$row=$result->fetch_assoc();
if (isset($row))
$content.="<p>".bbcode_to_html($row['news']);
if ($row['author'])
$content.=bbcode_to_html("
".$row['author']."
");
$content.=bbcode_to_html("[gap]");
}
}
// вычисление ссылок на страницы гостевой
$content.="<h5>";
for ($i=1; $i<($count/$per_page+1); $i++) {
if ($i>1) $content.=", ";
if ($i!=$n) $content.="<a href='?part=site_news&n=$i'>";
$content.=$i;
if ($i!=$n) $content.="</a>";
}
$content.="</h5>";
}
}
return $content;
}
?>

------SQL---------
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июл 29 2008 г., 21:57
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
--
-- БД: `mysite`
--

-- --------------------------------------------------------

--
-- Структура таблицы `site_news`
--

CREATE TABLE `site_news` (
`id` int(6) NOT NULL auto_increment,
`title` varchar(255) NOT NULL,
`date` date NOT NULL,
`image` varchar(255) NOT NULL,
`news` text NOT NULL,
`author` varchar(255) NOT NULL,
`url` text NOT NULL,
`full_news` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;

--
-- Дамп данных таблицы `site_news`
--

INSERT INTO `site_news` VALUES (1, 'bugagagaga', '2008-07-29', 'donwload/image', '[Extra Hide] Версия: 5.5 (Studio 2009) Разработчик: Ахрамеев Денис Сайт: http://www.ruxesoft.net/ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^>>>> Лицензионное соглашение <<<<^ ===================================', 'zeloras', 'http://amxmod-x.org', '[Extra Hide] Версия: 5.5 (Studio 2009) Разработчик: Ахрамеев Денис Сайт: http://www.ruxesoft.net/ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^>>>> Лицензионное соглашение <<<<^ ===================================');
INSERT INTO `site_news` VALUES (2, 'aaaaaa', '2008-07-29', 'gg/aa', ' 1. Правообладатель программы Extra Hide и всех версий продукта является Ахрамеев Денис. (Официальный сайт: http://www.ruxesoft.net/).', 'zeloras', '', ' 1. Правообладатель программы Extra Hide и всех версий продукта является Ахрамеев Денис. (Официальный сайт: http://www.ruxesoft.net/).');
INSERT INTO `site_news` VALUES (3, 'bugagagaga123', '2008-07-29', 'donwload/image', '2. Вы имеете право бесплатно использовать программу в течении неограниченного срока. А также свободно распространять программу, не', 'zeloras', 'aaaaa', '2. Вы имеете право бесплатно использовать программу в течении неограниченного срока. А также свободно распространять программу, не');
INSERT INTO `site_news` VALUES (4, '12311', '2008-07-29', 'gg/aa', '3. Вы не имеете право эмулировать, клонировать, сдавать в аренду, давать напрокат, продавать, изменять, декомпилировать, дизассемблировать программу.', 'zeloras', 'aaaaa12', '3. Вы не имеете право эмулировать, клонировать, сдавать в аренду, давать напрокат, продавать, изменять, декомпилировать, дизассемблировать программу.');
INSERT INTO `site_news` VALUES (5, 'aasd123', '2008-07-29', 'donwload/image', '5. Вы можете использовать данное программное обеспечение в любой стране мира.', 'zeloras', 'aaaaa', '5. Вы можете использовать данное программное обеспечение в любой стране мира.');
INSERT INTO `site_news` VALUES (6, '', '2008-07-29', '1aasd2', '4. Программа распространяется по принципу «Как есть». Ни каких гарантий автор не предоставляет, а также не несёт ответственности за порчу имущества или информации программой.', 'zeloras', 'aaaaaaaa', '4. Программа распространяется по принципу «Как есть». Ни каких гарантий автор не предоставляет, а также не несёт ответственности за порчу имущества или информации программой.');

Обсуждение

Неизвестный
29.07.2008, 22:06
общий
это ответ
Здравствуйте, Герасимов Виталий Владиславови!

Попробуйте изменить цикл следующим образом:

Приложение:
Вместо:

$news_viewe = mysql_fetch_array($result);
do {
...
}
while ("$news_viewe = mysql_fetch_array ($result)") {
;
}

запишите:

$news_viewe = mysql_fetch_array($result);
do {
...
} while ($news_viewe = mysql_fetch_array ($result));
Неизвестный
29.07.2008, 22:20
общий
Код:

while ($news_viewe = mysql_fetch_array ($result))
{
...
}
Неизвестный
29.07.2008, 23:04
общий
это ответ
Здравствуйте, Герасимов Виталий Владиславови!
если вывод...то Вы неправильно условие указали...
while ("$news_viewe = mysql_fetch_array ($result)");
а нада
while ($news_viewe = mysql_fetch_array ($result));
если остальное номально-то в этом проблема
Форма ответа