Помогите с форумом
|
|
wInDx | Дата: Пятница, 17 Июня 2011, 17:28 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Ребят помогите написать код для форума в игру!Тоесть форум нужен, что б вставить его в игру, такой себе типа мини.Вот допустим ссылка в браузерной игре "Форум" в нем разделы "Общий раздел","Новости","Кланы красных","Кланы синих" и.т.д.В етих разделах топики, обычные и прикрепленные, прикрепленный всегда сверху, потом если появилось новое сообщение в топике пометить как непрочитанное и.т.д!Проблема в том что форум если так подумать простенький, а я незнаю с чего начать, как например сделать отображение топиков из БД, сообщений в топиках, потом как например сделать страницы что то типа 1 l 2 l 3 l...l 152 l 153..!Помогите плыз:( Добавлено (17.06.2011, 17:28) --------------------------------------------- Вот я скачал форум, но он огромный типа как gcup,>>>Скачать<<<, а нужен мини что зарегестрированные пользователи в игре могли писать в нем и.т.д
Ubi Concordia Ibi Victoria
|
|
| |
lvovand | Дата: Пятница, 17 Июня 2011, 17:37 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Quote (wInDx) Проблема в том что форум если так подумать простенький, а я незнаю с чего начать начинай с изучения php+mysql
Разработка и продвижение сайтов. Дизайн
|
|
| |
wInDx | Дата: Пятница, 17 Июня 2011, 17:43 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| lvovand,php+mysql я знаю,я почти уже свою игру дописал, но нужен форум:)))
Ubi Concordia Ibi Victoria
|
|
| |
lvovand | Дата: Пятница, 17 Июня 2011, 17:57 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| ну а вопросы то задаешь элементарнейшие. подключился к базе -> достал запросом данные -> отобразил то что достал, в чем сложность? постраничной разбивки вот кусок примерный (переход по страницам forum.php?page=x) Code <?php if(isset($_GET['page'])) { $page = intval($_GET['page']);} else { $page = 0; } //получили номер страницы
$num_per_page = 25; // сообщений на странице $sql_cnt = "SELECT COUNT(*) AS cnt FROM `msgs` "; $cnt = mysql_fetch_array(mysql_query($sql_cnt)); // Получил общее количество $num_pages = ceil($cnt['cnt']/$num_per_page); //получил кол-во страниц
$sql = "SELECT * FROM `msgs` WHERE 1 ORDER BY `id` DESC LIMIT ".($page*$num_per_page).",".$num_per_page." "; $res = mysql_query($sql);
//получили сообщения while($row = mysql_fetch_array($res)){ // } echo " стр. ".($page+1)." из ".$num_pages; ?>
Разработка и продвижение сайтов. Дизайн
|
|
| |
a112 | Дата: Пятница, 17 Июня 2011, 18:20 | Сообщение # 5 |
участник
Сейчас нет на сайте
| С нуля писать смысла кагбе нет:) Зачем придумывать велосипед:) Наберите в поисковике "php скрипт форума", выберите какой вам хочется, или посмотрите тут. Далее допилите под вашу БД и всё:)
топ браузерных игр
Сообщение отредактировал a112 - Пятница, 17 Июня 2011, 18:20 |
|
| |
wInDx | Дата: Пятница, 17 Июня 2011, 19:30 | Сообщение # 6 |
почетный гость
Сейчас нет на сайте
| Из етого Quote Code <?php if(isset($_GET['page'])) { $page = intval($_GET['page']);} else { $page = 0; } //получили номер страницы
$num_per_page = 25; // сообщений на странице $sql_cnt = "SELECT COUNT(*) AS cnt FROM `msgs` "; $cnt = mysql_fetch_array(mysql_query($sql_cnt)); // Получил общее количество $num_pages = ceil($cnt['cnt']/$num_per_page); //получил кол-во страниц
$sql = "SELECT * FROM `msgs` WHERE 1 ORDER BY `id` DESC LIMIT ".($page*$num_per_page).",".$num_per_page." "; $res = mysql_query($sql);
//получили сообщения while($row = mysql_fetch_array($res)){ // } echo " стр. ".($page+1)." из ".$num_pages; ?> Ничего непонял:(((Можеш подробнее
Ubi Concordia Ibi Victoria
|
|
| |
a112 | Дата: Пятница, 17 Июня 2011, 20:07 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Quote (wInDx) Ничего непонял:(((Можеш подробнее Что именно непонятно. Кусок кода с постраничной навигации вырван.
топ браузерных игр
|
|
| |
vicu2010 | Дата: Пятница, 17 Июня 2011, 20:20 | Сообщение # 8 |
Сейчас нет на сайте
| wInDx, Quote (wInDx) ,php+mysql я знаю Сомневаюсь!Добавлено (17.06.2011, 20:20) ---------------------------------------------
Quote (wInDx) в игре могли писать в нем и.т.д Может Чат?
Программист Ruby on Rails / COBOL | Веб-дизайнер(Bootstrap, HTML5, JS) | Викверс на Construct 2 / Classic
|
|
| |
wInDx | Дата: Пятница, 17 Июня 2011, 20:49 | Сообщение # 9 |
почетный гость
Сейчас нет на сайте
| Quote (vicu2010) Сомневаюсь! Я бы тебе дал свои исходники но.....Ето все таки моя работа!
Quote (vicu2010) Может Чат? Нет
Ubi Concordia Ibi Victoria
|
|
| |
lvovand | Дата: Пятница, 17 Июня 2011, 21:31 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| уточни что подробнее, основа пострачной навигации - это запрос на кол-во и запрос на выборку с лимитированием, LIMIT ... получил кол-во и дальше со страницами играешься. ничего особо выдающегося вроде нет в коде, что подробнее? если игру написал, не должно сложностей вызывать
Разработка и продвижение сайтов. Дизайн
|
|
| |
wInDx | Дата: Пятница, 17 Июня 2011, 23:16 | Сообщение # 11 |
почетный гость
Сейчас нет на сайте
| Ребят я с постраничной навигацией разобрался!Скажите как мне темы выводить, сообщения как в темах выводить?Вот ето единственное чего я немогу понять, пытаюст пытаюсь и все зря:( Добавлено (17.06.2011, 23:16) --------------------------------------------- И еще забыл, как их отсортировать по последним сообщениям, тоесть темы в которых сообщения самые последние выводить на верх списка, а также как сделать чтоб допустим если человек прочел ету тему то например картиночка рядом с темой "1" а если непрочитанная тема то картинка "2"?
Ubi Concordia Ibi Victoria
|
|
| |
lvovand | Дата: Пятница, 17 Июня 2011, 23:59 | Сообщение # 12 |
старожил
Сейчас нет на сайте
| что значит как темы выводить, вообще вопрос непонятен, вязл тему из таблицы и вывел, в чнем сложность?
сортировка в таблице ссобщений поле `id`, когда делаешь выборку добавляешь сртировку SELECT * FROM `msgs` WHERE ... ORDER BY `id` DESC
чтобы определять прочел тему человек или нет, сделай таблицу, где будут храниться id человека и id темы и при выводе проверяешь как-то так
$sql = "SELECT * FROM `reading` WHERE `id_theme` = ... AND `id_user` = ... LIMIT 1"; если есть результат значит прочел, если нет, значит не прочел
Разработка и продвижение сайтов. Дизайн
|
|
| |
wInDx | Дата: Суббота, 18 Июня 2011, 13:04 | Сообщение # 13 |
почетный гость
Сейчас нет на сайте
| ivovand, я имею ввиду как вытаскивать все темы,допустим если всего тем в базе 25, на каждое странице которая передается GET['page'] по 10тем, как их вытащить чтоб на 1стр. 10тем на 2стр. 10тем а на 3стр. 5тем?Можеш написать код?
Ubi Concordia Ibi Victoria
|
|
| |
lvovand | Дата: Суббота, 18 Июня 2011, 13:47 | Сообщение # 14 |
старожил
Сейчас нет на сайте
| в запросе на выборку тем делаешь лимит на кол-во сообщений и сортировку. php нет под рукой сейчас, но примерно так можно простую постраничную навигацию сделать
Code <?php if(isset($_GET['page'])) { $page = intval($_GET['page']);} else { $page = 0; } //получили номер страницы
$num_per_page = 10; // сообщений на странице $sql_cnt = "SELECT COUNT(*) AS cnt FROM `msgs` "; $cnt = mysql_fetch_array(mysql_query($sql_cnt)); // Получил общее количество $num_pages = ceil($cnt['cnt']/$num_per_page); //получил кол-во страниц
$sql = "SELECT * FROM `msgs` WHERE 1 ORDER BY `id` DESC LIMIT ".($page*$num_per_page).",".$num_per_page." "; $res = mysql_query($sql);
//получили сообщения while($row = mysql_fetch_array($res)){ // вывели сообщения } if($page>0){ $left .= " <a href='forum.php?page=0'><<</a> "; //На первую $left .= " <a href='forum.php?page=".($page-1)."'><</a> "; //На предыдущую } else{ $left .= " << "; //без ссылки $left .= " < "; //без ссылки }
if($page+1 < $num_pages){ $right .= " <a href='forum.php?page=".($page+1)."'>></a> "; //На следующую $right .= " <a href='forum.php?page=".($num_page-1)."'>>></a> "; //На последнюю } else{ $right .= " > "; //без ссылки $right .= " >> "; //без ссылки } echo $left." стр. ".($page+1)." из ".$num_pages." ".$right; ?>
Разработка и продвижение сайтов. Дизайн
|
|
| |
wInDx | Дата: Суббота, 18 Июня 2011, 14:21 | Сообщение # 15 |
почетный гость
Сейчас нет на сайте
| Я же говорил что страницы сделал!Как мне темы вывести все??? Добавлено (18.06.2011, 14:20) --------------------------------------------- Вернее они выводятся, но только первая тема:( Добавлено (18.06.2011, 14:21) --------------------------------------------- Вот первая страница 10раз тема asd, вторая страница 10раз тема asd, и третья 5раз тема asd^(
Ubi Concordia Ibi Victoria
|
|
| |
lvovand | Дата: Суббота, 18 Июня 2011, 14:24 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| ну а как ты их сейчас выводишь?
Разработка и продвижение сайтов. Дизайн
|
|
| |
anton-gar | Дата: Суббота, 18 Июня 2011, 14:39 | Сообщение # 17 |
WEBmaster
Сейчас нет на сайте
| Quote (wInDx) Вернее они выводятся, но только первая тема:(
Создай цикл и выводи сколько тебе угодно. Что-то вроде этого: Code for ($c; $c<mysql_num_rows($soed); $c++){ $res=mysql_fetch_array($soed); echo $res[2]." ".$res[1]." ".$res[3]."<br>"; }
|
|
| |
wInDx | Дата: Суббота, 18 Июня 2011, 18:22 | Сообщение # 18 |
почетный гость
Сейчас нет на сайте
| Ребята что в етом коде неправильно???? Code <?php session_start(); $_SESSION['user']="windx"; $_SESSION['user']['status']="admin";
include '/../settings/connect.php'; include '/../settings/config.php'; $page=$_GET['page'] ;
$num_per_page = 10; // сообщений на странице
$sql = "SELECT * FROM topic WHERE 1 ORDER BY id DESC LIMIT ".($page*$num_per_page).",".$num_per_page." "; $res = mysql_query($sql);
//получили сообщения $c=0; for ($c;$c < mysql_num_rows($res);$c++){ $da=mysql_fetch_array($res); echo $da['1']." ".$da['2']." ".$da['3']."<br>"; } ############################################################################### $query = "SELECT COUNT(*) FROM topic WHERE id_forum=".$_GET['idForum']; $res = mysql_query( $query ); $total = mysql_result( $res, 0, 0 ); if ( $total == 0 ) { echo '<p>В этом форуме пока нет сообщений</p>'."\n"; }
$cntPages = ceil( $total / 10 ); // Проверяем передан ли номер текущей страницы (постраничная навигация) if ( isset($_GET['page']) ) { $page = (int)$_GET['page']; if ( $page < 1 ) $page = 1; } else { $page = 1; }
if ( $page > $cntPages ) $page = $cntPages; // Начальная позиция (постраничная навигация) $start = ( $page - 1 ) * 10;
// Строим постраничную навигацию, если это необходимо if ( $cntPages > 1 ) { // Функция возвращает html меню для постраничной навигации $pages = pageIterator( $page, $cntPages, $_SERVER['PHP_SELF'].'?idForum='. $_GET['idForum'] );
echo $pages; } ############################################################################### function pageIterator( $page, $cntPages, $url ) {
$html = '<div class="pagesDiv"> Страницы: '; // Проверяем нужна ли стрелка "В начало" if ( $page > 3 ) $startpage = '<a class="pages" href="'.$url.'&page=0"><<</a> ... '; else $startpage = ''; // Проверяем нужна ли стрелка "В конец" if ( $page < ($cntPages - 2) ) $endpage = ' ... <a class="pages" href="'.$url.'&page='.$cntPages.'">>></a>'; else $endpage = '';
// Находим две ближайшие станицы с обоих краев, если они есть if ( $page - 2 > 0 ) $page2left = ' <a class="pages" href="'.$url.'&page='.($page - 2).'">'.($page - 2).'</a> | '; else $page2left = ''; if ( $page - 1 > 0 ) $page1left = ' <a class="pages" href="'.$url.'&page='.($page - 1).'">'.($page - 1).'</a> | '; else $page1left = ''; if ( $page + 2 <= $cntPages ) $page2right = ' | <a class="pages" href="'.$url.'&page='.($page + 2).'">'.($page + 2).'</a>'; else $page2right = ''; if ( $page + 1 <= $cntPages ) $page1right = ' | <a class="pages" href="'.$url.'&page='.($page + 1).'">'.($page + 1).'</a>'; else $page1right = '';
// Выводим меню $html = $html.$startpage.$page1left.$page2left.'<strong>'.$page.'</strong>'. $page2right.$page1right.$endpage."\n";
$html = $html.'</div>'."\n";
return $html; } ############################################################################### ?> [size=22][color=red]Я УЖЕ НА НЕРВАХ СИЖУ:([color=red][size=22]
Ubi Concordia Ibi Victoria
|
|
| |
|
lvovand | Дата: Суббота, 18 Июня 2011, 19:13 | Сообщение # 20 |
старожил
Сейчас нет на сайте
| и еще скажите что в файлах include '/../settings/connect.php'; include '/../settings/config.php';
может подключиться к базе пытаетесь раньше, чем парметры для подключения задали
Разработка и продвижение сайтов. Дизайн
|
|
| |