Воскресенье, 22 Декабря 2024, 18:14

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Помогите с форумом
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
anton-garДата: Суббота, 18 Июня 2011, 19:03 | Сообщение # 19
WEBmaster
Сейчас нет на сайте
$_SESSION['user_status']="admin"; - замените так, во избежании ошибок

Вместо include используйте - require_once

Скажите какую ошибку выдаёт?, ибо времени нет разбирать весь код...




Сообщение отредактировал anton-gar - Суббота, 18 Июня 2011, 19:04
lvovandДата: Суббота, 18 Июня 2011, 19:13 | Сообщение # 20
старожил
Сейчас нет на сайте
и еще скажите что в файлах
include '/../settings/connect.php';
include '/../settings/config.php';

может подключиться к базе пытаетесь раньше, чем парметры для подключения задали


Разработка и продвижение сайтов. Дизайн
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг