[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод новостей
johniek_comp
Наваял
func_mysqlconnect();
$sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0, 10";
$sql_result = mysql_query($sql) or die (mysql_error());
while ($row = mysql_fetch_assoc($sql_result))
{
$subject = $row["subject"];
$text = $row["text"];
$id = $row["id"];
$text = str_replace("'", "'", $text);
$sql = "SELECT * FROM `comments` WHERE newsid='$id'";
$commentsnum = mysql_numrows(mysql_query($sql));
}


теперь вывожу новости
<?php 
echo "<div id=content><h2>$subject</h2><p>";
echo substr($text, 0, 100);
echo "</p></div>";
?>


выводится одна первая в бд новость.
раньше делал по типу такого
<?php 
echo "<div id=content><h2>$subject</h2><p>";
echo substr($text, 0, 100);
echo "</p></div>\n";
?>


выводятся все 10 новостей(DESC LIMIT 0, 10)

это работало при табличной верстке, а как мне теперь быть?



Спустя 10 минут, 54 секунды (21.12.2011 - 19:50) inpost написал(а):
У тебя и раньше не должно было выводиться. По коду видно, что ты их перезаписываешь постоянно, в итоге вывод лишь выведет 1 запись последнюю!

Спустя 29 минут, 54 секунды (21.12.2011 - 20:20) killer8080 написал(а):
johniek_comp
во первых тут ошибка - mysql_numrows, такой функции нет.
Во вторых делать запрос в цикле, да ещё с mysql_num_rows не хорошо. Количество комментов можно посчитать тем же запросом
$sql = "
SELECT `n`.*, COUNT(`n`.`id`) AS `num_com`
FROM `news` `n`
LEFT JOIN `comments` `c` ON `c`.`newsid`=`n`.`id`
GROUP BY `c`.`newsid`
ORDER BY `n`.`id` DESC
LIMIT 0, 10"
;

в $row['num_com'] будет содержаться количество комментов user posted image

Спустя 45 минут, 58 секунд (21.12.2011 - 21:05) johniek_comp написал(а):
вкурил, учту!

и как мне нормально выводить записи?

Спустя 7 минут, 40 секунд (21.12.2011 - 21:13) Игорь_Vasinsky написал(а):
опять чёй то аватар нагрел biggrin.gif

а выводить в цикле (в php вставлять html)

или юзать твой любимый смарти.

или юзать буферизацию (но это похоже на первый способ - тока плюс в том что ты этот вывод можешь вставить в любой уголок сайта - через одну переменную)

почитай в моём журнале про MVC

Спустя 52 минуты, 17 секунд (21.12.2011 - 22:05) johniek_comp написал(а):
Игорь_Vasinsky
так я выводил так уже, но тогда я таблицами сверстал!
сейчас же найду у себя код и покажу!

Спустя 23 минуты, 3 секунды (21.12.2011 - 22:28) Ramzil_Nixon написал(а):
Ну я лично так делаю:

func_mysqlconnect();
$subject = '';
$text = '';
$id = '';
$sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0, 10";
$sql_result = mysql_query($sql) or die (mysql_error());
while ($row = mysql_fetch_assoc($sql_result))
{
$subject .= $row["subject"];
$text .= $row["text"];
$id .= $row["id"];
$text = str_replace("'", "'", $text);
$sql = "SELECT * FROM `comments` WHERE newsid='$id'";
$commentsnum = mysql_num_rows(mysql_query($sql));
}


я с шаблонизатором не особо дружу, вот по этому так и делаю :)

Спустя 46 секунд (21.12.2011 - 22:29) johniek_comp написал(а):
Свернутый текст
<?php
include (dirname(__FILE__) . "/config.php");
func_mysqlconnect();
include "style.php";
echo "<table style='border-top: 1px solid #$bordercolor' width=$tablewidth align=center cellspacing=0 cellpadding=2 border=0>";
$sql = "SELECT * FROM news ORDER BY id DESC LIMIT 0, $newsnum";
$sql_result = mysql_query($sql) or die ("<font face=verdana>Error: ".mysql_error());
while ($row = mysql_fetch_array($sql_result))
{
$subject = $row["subject"];
$text = $row["text"];
$id = $row["id"];
$date = $row["date"];
$text = str_replace("'", "'", $text);
$sql = "SELECT * FROM comments WHERE newsid='$id'";
$commentsnum = mysql_numrows(mysql_query($sql));
echo "<tr><td bgcolor=#$tablebgcolor1 align=left width=100% title='$date' style='border-left: 1px solid #$bordercolor; border-right: 1px solid #$bordercolor'><font> $date <a href='mailto:$email'>$name</a> тема: <i>$subject</i></td></tr>\n";
echo "<tr><td bgcolor=#$tablebgcolor2 align=justify width=100% style='BORDER-TOP: #$bordercolor 1px solid; BORDER-right: #$bordercolor 1px solid; BORDER-left: #$bordercolor 1px solid'><font><p align=justify>";
echo substr($text, 0, 100);
echo "...";
echo "<br><br><p align=right><A HREF='archive.php?newsid=$id'>Читать полностью</a> Комментарии($commentsnum)</center>";

}
echo "<tr></tr><td bgcolor=#$tablebgcolor1 align=center width=100% style='border-top: 1px solid #$bordercolor; border-left: 1px solid #$bordercolor; border-right: 1px solid #$bordercolor; border-bottom: 1px solid #$bordercolor'><font><center></a> - <a href=/archive.php target=_blank>Архив</a></td></tr>\n";
echo "</td></table>\n";
?>


вот! выводит все записи по очереди, как мне в <div> такое сделать?

Спустя 8 минут, 18 секунд (21.12.2011 - 22:38) Ramzil_Nixon написал(а):
johniek_comp
Убираешь теги таблицы и вбиваешь туда DIV biggrin.gif

Спустя 1 минута, 32 секунды (21.12.2011 - 22:39) johniek_comp написал(а):
Ramzil_Nixon
Если бы все было так легко smile.gif То я бы не создавал тему.

Спустя 3 минуты, 43 секунды (21.12.2011 - 22:43) dadli написал(а):
johniek_comp
не понял что ето сделает
Цитата
$text = str_replace("'", "'", $text);

Спустя 5 минут, 58 секунд (21.12.2011 - 22:49) Ramzil_Nixon написал(а):
johniek_comp
Цитата (johniek_comp @ 21.12.2011 - 19:39)
Если бы все было так легко  То я бы не создавал тему.


Ну тогда изучай шаблонизаторы smile.gif

Спустя 8 минут, 59 секунд (21.12.2011 - 22:58) Игорь_Vasinsky написал(а):
Псевдо Smarty

 
//Записал шаблон в переменную
ob_start();
include VAS_HOME."/tpls/admin/materials.tpl";
$content = ob_get_contents();
ob_end_clean();


//Записываю вывод в буфер
ob_start();
$sqlMaterial = "SELECT * FROM `material`,`category` WHERE material.cat_id = category.id GROUP BY material.id ORDER BY material.cat_id";
$getListMaterial = mysqli_query($link, $sqlMaterial);

if(mysqli_num_rows($getListMaterial))
{
$i = 1;
while($getAllMaterial = mysqli_fetch_assoc($getListMaterial))
{
$comment = $getAllMaterial['comment'] == 1 ? 'checked="CHECKED"' : null;

$i++;
if($i == 16)
{
echo '<tr><th></th><th>Наименование</th><th>Категория</th><t h>Коммент.</th><th>Дата</th><th>Ред.</th><th>Удал.</th>& amp; lt;/tr>';
}
echo '<tr><td align="center" width="20px"><img src="images/material.png" border="0"></td>'
.'<td><a class="menu" href="?route=material&name='.$getAllMaterial['seomark'].'" target="ablank">'.$getAllMaterial['title'].'</a></td>'
.'<td width="140px">'.$getAllMaterial['name'].'</td>'
.'<td align="center" width="80px"><input disabled="DISABLED" type="checkbox" name="comment" '.$comment.'></td>'
.'<td align="center" width="80px"><small>'.str_replace(" ", "<br />", $getAllMaterial['public']).'</small></td>'
.'<td align="center" width="20px"><a class="menu" href="?route=amdin&mode=editmaterial&name='.$getAllMaterial['seomark'].'">'
.'<img src="images/edit.png" border="0"></a></td>'
.'<td align="center" width="20px"><a href="" onclick = \'return confirm("Удалить материал «'.$getAllMaterial['title'].'»?")\'>'
.'<img src="images/drop.png" border="0"></a></td></tr>';
}

}

else
echo '<tr><td colspan="4" align="center">Материал не добавлен.</td></tr>';

//Записал буфер в переменную
$listMaterial = ob_get_contents();
ob_end_clean();

$dataMaterial = array($listMaterial);

$replacmentMaterial = array("{*LISTMATERIAL*}");

//Нашёл метку в шаблоне и заменыл на вывод
//Вывел шаблон с выводом

echo str_replace($replacmentMaterial, $dataMaterial, $content);



т.е. у меня в TPL стоит метка {*LISTMATERIAL*}

      <th></th>
<th>
Наименование</th>
<th>
Категория</th>
<th>
Коммент.</th>
<th>
Дата</th>
<th>
Ред.</th>
<th>
Удал.</th>
</tr>

{*LISTMATERIAL*}
</table>
</div>



надоб как то назвать эту методу, сам изобрёл. ;)

Спустя 3 минуты, 3 секунды (21.12.2011 - 23:01) johniek_comp написал(а):
короче возьму кохану, и будет меньше проблем.

Спустя 2 минуты, 10 секунд (21.12.2011 - 23:03) Игорь_Vasinsky написал(а):
biggrin.gif конечно... я даж отступил от Yii

фраймворки не для ваших сайтов визиток wink.gif таме кроме шаблонизаора ещё много чего о чём ты не слышал, эт те не джумла biggrin.gif


ты кстати так движёк блога забросил?

а я вот делаю.

Спустя 3 минуты, 37 секунд (21.12.2011 - 23:07) Ramzil_Nixon написал(а):
Цитата (Игорь_Vasinsky @ 21.12.2011 - 19:58)
надоб как то назвать эту методу, сам изобрёл. wink.gif


Пользовался уже таким biggrin.gif Только вместо {*LISTMATERIAL*} использовал простые переменные biggrin.gif

Спустя 13 минут, 57 секунд (21.12.2011 - 23:21) johniek_comp написал(а):
Так это и есть твой двиг блога, я переписую его с нуля, а то не правильно начал.
ща кохана выдаст smile.gif

Спустя 7 минут, 25 секунд (21.12.2011 - 23:28) Игорь_Vasinsky написал(а):
это малёханьктй кусочек из админки одного раздела - вывод материала тока biggrin.gif

разделов много - умножай каждый на 3 (модуль контроллер шаблон + иногда доп шаблон)

Свернутый текст
user posted image

ето те не шухры мухры.

Спустя 16 минут, 51 секунда (21.12.2011 - 23:45) johniek_comp написал(а):
Я люблю булочки как красиво. Так ты с нуля писал, или смарти, фраемворки?

Спустя 6 минут, 18 секунд (21.12.2011 - 23:51) Игорь_Vasinsky написал(а):
ну скока раз говорить - не терплю готовые CMS и толком не знаком ни с одним php фреймворком.

канешь с нуля.

Спустя 3 минуты, 8 секунд (21.12.2011 - 23:54) johniek_comp написал(а):
ну уж нет, я так издеваться над собой не могу, только фреймворк.
ладно не будем оффтопить, скайп есть на это дело.

Спустя 3 минуты, 54 секунды (21.12.2011 - 23:58) Ramzil_Nixon написал(а):
Цитата (johniek_comp @ 21.12.2011 - 20:21)
Так это и есть твой двиг блога, я переписую его с нуля, а то не правильно начал.
ща кохана выдаст

Цитата (Игорь_Vasinsky @ 21.12.2011 - 20:28)
это малёханьктй кусочек из админки одного раздела - вывод материала тока 

разделов много - умножай каждый на 3 (модуль контроллер шаблон + иногда доп шаблон)


А с ob_start() и ob_end_clean() смешивается логика и представление, и многие это не любять, да как же все таки будет правильно? на ирбисе написано что шаблонизаторы грузят коды и они работают намного медленнее.

Спустя 4 минуты, 49 секунд (22.12.2011 - 00:03) Игорь_Vasinsky написал(а):
да - смешивание ни еть гуд - но там тока обёртка с классами (из ксс вполне рулится)

зачем грузит? всё пучком.

Спустя 15 минут, 8 секунд (22.12.2011 - 00:18) johniek_comp написал(а):
Игорь_Vasinsky
Хорошо. Тогда такой вопрос, зачем ООП? Кому оно надо, кому надо это наследование, экземпляро классование и т.д.? Ты применял его в своей CMS?

Спустя 1 час, 35 минут, 38 секунд (22.12.2011 - 01:54) killer8080 написал(а):
Цитата (johniek_comp @ 21.12.2011 - 21:39)
Ramzil_Nixon
Если бы все было так легкоТо я бы не создавал тему.

А что сложного то? Я вообще не догоняю о чем вы тут флудите rolleyes.gif
johniek_comp ты не знаешь как вывести контент? А как ты его с таблицами делал?
Какие уж тут фреймворки, разберись сначала с азами PHP smile.gif

Спустя 4 часа, 57 минут, 10 секунд (22.12.2011 - 06:51) Игорь_Vasinsky написал(а):
Цитата
зачем ООП? Кому оно надо, кому надо это наследование, экземпляро классование и т.д.? Ты применял его в своей CMS?

кому то может нужно, может еслиб я более подробно ознакомился с ним - то и использовал, а так \я и в процедурном стиле делаю.

Спустя 2 часа, 48 минут, 5 секунд (22.12.2011 - 09:39) killer8080 написал(а):
Цитата (johniek_comp @ 21.12.2011 - 23:18)
Тогда такой вопрос, зачем ООП? Кому оно надо, кому надо это наследование, экземпляро классование и т.д.?

Почитай здесь rolleyes.gif

Спустя 6 часов, 16 минут, 42 секунды (22.12.2011 - 15:56) johniek_comp написал(а):
killer8080
ну если ты знаешь знаешь как его вывести, то пожалуйста, я дал код, выведи мне его biggrin.gif

Игорь_Vasinsky
Как же тебя на работу такого взяли? Без ООП и фраемворка?

Спустя 5 минут, 4 секунды (22.12.2011 - 16:01) inpost написал(а):
johniek_comp
Юный ты и молодой. ООП вообще нафиг никому не сдался. Почитай высказывания самих разработчиков, они его ввели для пантов. Хотя разжигать не собираюсь, читай соответственные темы, где ведётся обсуждение ООП.
Фреймворк, как думаешь, на каком фреймворке сделаны следующие сайты: вконтакте, одноклассники, гугл и т.д.? smile.gif Вот когда ответишь, тогда поймешь smile.gif

Спустя 7 минут, 38 секунд (22.12.2011 - 16:08) killer8080 написал(а):
Цитата (johniek_comp @ 22.12.2011 - 14:56)
killer8080
ну если ты знаешь знаешь как его вывести, то пожалуйста, я дал код, выведи мне его

ты меня удивляешь user posted image
$sql = "
SELECT `n`.*, COUNT(`n`.`id`) AS `num_com`
FROM `news` `n`
LEFT JOIN `comments` `c` ON `c`.`newsid`=`n`.`id`
GROUP BY `c`.`newsid`
ORDER BY `n`.`id` DESC
LIMIT 10"
;

$result = mysql_query($sql);
if(mysql_num_rows($result)){
while($row = mysql_fetch_assoc($result)){
?>
<div id=content><h2><?=htmlspecialchars($row['subject'])?></h2>
<
p>
<?=htmlspecialchars(substr($row['text'], 0, 100))?>
Комментариев: <?=$row['num_com']?>
</p>
</
div>
<?php
}
}

Спустя 50 минут, 19 секунд (22.12.2011 - 16:59) johniek_comp написал(а):
inpost
То есть ты говоришь что ООП можно не изучать? И фраемворки не юзать? Просто писать код как захочешь?

Спустя 8 минут, 10 секунд (22.12.2011 - 17:07) inpost написал(а):
johniek_comp
А кто тебе запретит? Пока изучишь все 100 фреймворков и CMS - жизнь уйдет.

Спустя 2 минуты, 11 секунд (22.12.2011 - 17:09) johniek_comp написал(а):
inpost
Я ради этого и живу!

Спустя 7 минут, 32 секунды (22.12.2011 - 17:17) inpost написал(а):
johniek_comp
Но ты не сможешь даже среднего качества код написать на ПХП, будешь пожинать всю жизнь с помоек простенькие заказы на сайты визитки, лишь бы на жизнь хватало, и программистом никогда тебя никто не назовёт, зато будешь знать абсолютно все программы, которые являются конструкторами простых сайтов smile.gif

Спустя 59 секунд (22.12.2011 - 17:18) Игорь_Vasinsky написал(а):
johniek_comp
да потому что я любую задачу могу решить без ооп и фреймворков.

Спустя 1 минута, 30 секунд (22.12.2011 - 17:19) killer8080 написал(а):
Цитата (johniek_comp @ 22.12.2011 - 15:59)
То есть ты говоришь что ООП можно не изучать? И фраемворки не юзать? Просто писать код как захочешь?

ты сначала основы познай, а то вывод контента делать не умеешь, а за ООП хватаешься biggrin.gif

Спустя 11 минут, 36 секунд (22.12.2011 - 17:31) johniek_comp написал(а):
так я сделал вывод контента что не понятного? тут наверно по верстке больше вопрос. у меня все работает как и работало.

Спустя 3 минуты, 38 секунд (22.12.2011 - 17:34) killer8080 написал(а):
Цитата (johniek_comp @ 22.12.2011 - 16:31)
так я сделал вывод контента что не понятного? тут наверно по верстке больше вопрос. у меня все работает как и работало.

тогда к чему было это высказывание? И судя по коду, который ты приводил, его там не было в принципе. Вопроса по верстке я тут в упор не видел.
Цитата (johniek_comp @ 22.12.2011 - 14:56)
killer8080
ну если ты знаешь знаешь как его вывести, то пожалуйста, я дал код, выведи мне его

Спустя 10 минут, 15 секунд (22.12.2011 - 17:45) johniek_comp написал(а):
Имелось ввиду так

Тема новости 1
Текст новости 1
Тема новости 2
Текст новости 2

а у меня выводило как угодно, но не так как надо!

Спустя 4 минуты, 19 секунд (22.12.2011 - 17:49) killer8080 написал(а):
johniek_comp
ну вот приехали smile.gif
начинали с php, уже подумывал об ООП и фреймворках, а все из-за того что верстка не получалась laugh.gif


_____________
user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.