|
|
Модератор форума: LightInDarkness |
Форум Web раздел Сайты / WWW для эмуляторов [Скрипт] Вывод последних $n тем из форума IPB |
[Скрипт] Вывод последних $n тем из форума IPB |
Вчера нечем было вечером заняться, решил посмотреть структуры баз IPB.
Появилась вот такая идея:) Сам код: Код <? $dbip = '127.0.0.1'; //IP базы данных $dblogin = 'ggh'; //Имя пользователя базы данных $dbpass = 'gght'; //Пароль пользователя базы данных $fdb = 'forum_ipb'; //База данных форума $site_f_url = '127.0.0.1/forum'; //Адрес форума (127.0.0.1/forum или forum.127.0.0.1) !без http://! $n ='10'; // Колличество выводимых тем $connect = mysql_connect("$dbip1","$dblogin1","$dbpass1") or die ("нет соединения с базой данных"); mysql_select_db("$fdb") or die ("нет соединения с базой forums"); $forums = "SELECT tid, title FROM topics order by `start_date` desc LIMIT $n"; mysql_query('SET NAMES CP1251'); $titles = mysql_query ($forums) or die ("Нет такой таблицы"); ?><center><h2>Последние темы</h2></center> <table border=0 width=100%><tr> <? $forum_table = mysql_num_rows($titles); for($i=0;$i<$forum_table;$i++) { $row = mysql_fetch_array($titles); $tid = $row['tid']; $title = $row['title']; echo "<tr align=left><td height='18'> <a href=\"http://$site_f_url/index.php?/topic/$tid-$tid/\"\><font style=\"color: #000; text-shadow: #4399FF 2px 2px 5px, #4399FF -2px -2px 5px, #4399FF 2px -2px 5px, #4399FF -2px 2px 5px;\">$title</font></a></td></tr>"; } @mysql_close($connect); ?> </table> Посмотреть, как все это выглядит, можно на моем веб-сайте, ссылка в подписи. Только что отредактировал на скорую руку, добавил переменных и мини конфиг... Если есть ошибки, исправляйте;) Исправил ошибочку, обновил. |
Дополнил закрытие MySQL соединения.
Сообщение # 3 написано 13.03.2012 в 15:38
|
Code $fh = 'forum'; //Деректива форума(forum) $n ='10'; //константа колличества выводимых т спасибо, поржал
Сообщение # 4 написано 13.03.2012 в 15:53
|
Просто у всех может быть разный путь до папки форума.
Добавлено (13.03.2012, 16:11)
Сообщение # 5 написано 13.03.2012 в 16:11
|
Quote (Mago_De_Sombra) //Деректива форума(forum) Quote (Mago_De_Sombra) //константа колличества выводимых т Намекаю, что ржали над комментариями. Специально для тебя: http://ru.wikipedia.org/wiki/Директива_(программирование) http://ru.wikipedia.org/wiki/Константа_(программирование) Добавлено (13.03.2012, 16:20) --------------------------------------------- |
Ну это все великий и магучий русский язык:)
Константа - неизменимое число Директиву перепутал с директорией;) да, бывает и такое... Может скажете что-нибудь по поводу кода? На ошибки укажете?
Сообщение # 7 написано 13.03.2012 в 17:36
|
Quote (Quintessence) Константа - неизменимое число Code define ( 'RESULT', 'Quintessence_Lamer' ); RESULT - не константа? Почему? Потому, что не целое число? Quote (TheChosenOne) Так почему оно в кавычках?! Потому, что у него переменная. И присвоить ей значение (в данном случае 10) можно как типа integer (без ковычек), так и типа string (с ковычками). И назвать переменную константой - это всё равно что назвать членом сапёрскую лопатку
Сообщение # 9 написано 13.03.2012 в 17:45
|
Quote (Mago_De_Sombra) Потому, что у него переменная. И присвоить ей значение (в данном случае 10) можно как типа integer (без ковычек), так и типа string (с ковычками). Это я знаю, но если он сам сказал, что там число, очевидно же, что надо без кавычек Добавлено (13.03.2012, 17:48)
Сообщение # 10 написано 13.03.2012 в 17:48
|
ну php - не язык строго типизации.
в данном случае плевать, какой тип будет.
Сообщение # 11 написано 13.03.2012 в 17:49
|
TheChosenOne, я уже тоже об этом подумал, а то развели флуда...
Добавлено (13.03.2012, 18:20)
Сообщение # 13 написано 13.03.2012 в 18:20
|
Quote (Quintessence) Ну что, неламер, твоя душа спокойна?:) неа. вы всё равно не поняли разницы между константой и переменной. если тухлятину полить дезодорантом, лучше она пахнуть не станет. |
Предлогаю закрыть нашу дискуссию на высокой ноте, так как не хочу ни с кем ругаться...
Может есть какие-то замечания по коду?
Сообщение # 15 написано 14.03.2012 в 09:41
|
Quote (Quintessence) Может есть какие-то замечания по коду? Можешь переписать под расширение mysqli. Ибо IPB требует сервер mysql >= 5.0. А PHP документация настоятельно рекомендует использовать mysqli вместо mysql.
Это предложение ложно!
Сообщение # 16 написано 14.03.2012 в 15:06
|
Dedmaroz, может быть...
Позже над этим задумаюсь.
Сообщение # 17 написано 14.03.2012 в 20:24
|
исходя из твоего кода так думаю чище будет
Код <?php $conf = array( 'host' => '127.0.0.1', // хост базы данных 'user' => 'IGRIK', // логин базы данных 'pass' => 'IGRIK', // пароль базы данных 'db' => 'forum_IPB', // название базы форума 'url_forum' => '/forum/', // url путь до форума 'int' => 10, // количество отображение последних тем 'coder' => 'cp1251', // кодировка вывода из базы 'prefix' => 'ipb_' // префикс таблиц базы ); function connect($config) { $db = @mysql_connect($config['host'], $config['user'], $config['pass']); if (!$db) { exit('error connect DB'); } else { mysql_query("SET NAMES {$config['coder']}"); if (mysql_select_db($config['db'])) { return $db; } else { exit('not found DB->' . $config['db']); } } } function theme_forum_db($prefix, $int) { $zap = 'SELECT tid, title FROM ' . $prefix . 'topics ORDER BY start_date desc LIMIT ' . $int; if ($query = mysql_query($zap)) { while ($result = mysql_fetch_assoc($query)) { if (!is_null($result)) { $n[] = $result; } else { $n = ''; } } return @$n; mysql_close(); } else { exit('error table DB'); } } function theme($conf) { connect($conf); $theme = theme_forum_db($conf['prefix'], $conf['int']); if (!is_null($theme)) { foreach ($theme as $result) { $tm .= '<tr></tr><td><a href="' . $conf['url_forum'] . 'index.php?/topic/' . $result['tid'] . '-' . $result['tid'] . '/">' . $result['title'] . '</a></td>'; } } else { $tm = '<tr></tr><td><h6>нет тем на форуме</h6></td>'; } return $tm; } ?> <h5>Последние темы</h5> <table> <? echo theme($conf); ?> </table> и делает тоже самое Добавлено (16.07.2013, 15:44) --------------------------------------------- mysqli Код <?php if (!extension_loaded('mysqli')) { exit('error mysqli'); } $conf = array( 'host' => '127.0.0.1', // хост базы данных 'user' => 'IGRIK', // логин базы данных 'pass' => 'IGRIK', // пароль базы данных 'db' => 'forum_IPB', // название базы форума 'url_forum' => '/forum/', // url путь до форума 'int' => 10, // количество отображение последних тем 'coder' => 'cp1251', // кодировка вывода из базы 'prefix' => 'ipb_' // префикс таблиц базы ); function connect_mysqli($config) { $mysqli = new mysqli($config['host'], $config['user'], $config['pass']); if(!$mysqli){ exit(mysqli_connect_errno()); }else{ if($mysqli->select_db($config['db'])){ return $mysqli; }else{ exit('not found DB-> ' . $config['db']); } } } function select_theme_forum($conf) { $mysqli = connect_mysqli($conf); $zap = 'SELECT tid, title FROM ' . $conf['prefix'] . 'topics ORDER BY start_date desc LIMIT ' . $conf['int']; if ($result = $mysqli->query($zap)) { while ($row = $result->fetch_assoc()) { if (!is_null($row)) { $n[] = $row; } else { $n = ''; } } return $n; $result->close(); } else { exit('error table DB'); } } function forum_theme_new($conf) { $theme = select_theme_forum($conf); if (!is_null($theme)) { foreach ($theme as $result) { $tm .= '<tr></tr><td><a href="' . $conf['url_forum'] . 'index.php?/topic/' . $result['tid'] . '-' . $result['tid'] . '/">' . $result['title'] . '</a></td>'; } } else { $tm = '<tr></tr><td><h6>нет тем на форуме</h6></td>'; } return $tm; } ?> <h5>Последние темы</h5> <table> <? echo forum_theme_new($conf); ?> </table> |
Цитата (IGRIKRUS) профикс Мб "префикс"?
Сообщение # 22 написано 16.07.2013 в 16:39
|
Цитата Мб "префикс"? исправил
Сообщение # 23 написано 16.07.2013 в 18:40
|
dbip = '127.0.0.1'; //IP базы данных $dblogin = 'ggh'; //Имя пользователя базы данных $dbpass = 'gght'; //Пароль пользователя базы данныхА
Сообщение # 24 написано 06.01.2017 в 02:05
|
| |||
| |||