Posted 4 марта, 20204 yr comment_161022 Есть скрипт. Хватило ума довести его до ветки ipb(3.4) но застрял на передаче параметров PHP7.1 Как довести его до ума, чтобы он выводил из базы? <?php //======[ОСНОВНЫЕ НАСТРОЙКИ]====== //Префикс таблицы с IPB $prefix = ''; //Сколько тем выводить $num = 10; //Сколько символов оставить в названии темы после урезания $topic_num_sym = 65; //Имя папки с картинками текущего скина $img_path = '1'; //Формат времени $time = 'H:i'; //Форумы, которые мы не трогаем $forumexclude = '0'; //Сервер БД на котором висит база форума $host=""; //Имя БД $database=""; //Логин БД $username=""; //Пароль БД $password=""; //====[Если не знаем PHP - дальше ничего не трогаем ]========= $ipb_db = mysql_pconnect($host, $username, $password); mysql_select_db($database, $ipb_db); $rd = "SET CHARACTER SET CP1251"; IF (!$result = mysql_query($rd)) { ECHO "ERROR!!!\n"; } $resultf = mysql_query("SELECT tid, title, state, posts, starter_id, last_poster_id, last_post, starter_name, last_poster_name, views, topic_hasattach FROM ".$prefix."topics WHERE (forum_id NOT IN ($forumexclude)) ORDER BY last_post DESC LIMIT $num",$ipb_db) or die(mysql_error()); $row_resultf = mysql_fetch_assoc($resultf); $totalRows_resultf = mysql_num_rows($resultf); do { $topicstrip = $row_resultf['title']; if (strlen($topicstrip) > $topic_num_sym) { $topicstrip = substr($topicstrip,0,$topic_num_sym); $topicstrip = $topicstrip."..."; } $status = ($row_resultf['state'] == "closed") ? "<img src=\"forum/style_images/$img_path/f_closed.gif\" border=\"0\" alt=\"Тема закрыта\">" : ""; $attach = ($row_resultf['topic_hasattach'] == "1") ? "<img src=\"temp/A-Vector/images/files.gif\" border=\"0\" alt=\"В сообщении есть прикрепленные файлы\"> " : ""; $last_date = date($time,$row_resultf['last_post']); $bt.= "<small class=\"3\">$last_date:</small> <b><a title=\"".$row_resultf['title']."\" href=\"forum/index.php?showtopic=".$row_resultf['tid']."&view=getlastpost\">$topicstrip</a></b><br>"; } while($row_resultf = mysql_fetch_assoc($resultf)); mysql_free_result($resultf); echo $bt; return $bt; ?> А здесь PHP 7 Понимаю, что НУЖНО передать 2 параметра вместо одного, но КАКИЕ и КУДА сообразить не могу. [Wed Mar 04 20:32:01.637185 2020] [cgi:error] [pid 2998009] [client ] AH01215: PHP Warning: mysqli_query() expects at least 2 parameters, 1 given in /test.php on line 28 [Wed Mar 04 20:32:01.637479 2020] [cgi:error] [pid 2998009] [client] AH01215: PHP Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /test.php on line 31 [Wed Mar 04 20:32:01.637674 2020] [cgi:error] [pid 2998009] [client ] AH01215: PHP Warning: mysqli_error() expects exactly 1 parameter, 0 given in /test.php on line 31 //====[Если не знаем PHP - дальше ничего не трогаем ]========= $ipb_db = mysqli_connect("$host", "$username", "$password", "$database"); $rd = "SET CHARACTER SET UTF-8"; IF (!$result = mysqli_query($rd)) { ECHO "ERROR!!!\n"; } $resultf = mysqli_query("SELECT tid, title, state, posts, starter_id, last_poster_id, last_post, starter_name, last_poster_name, views, topic_hasattach FROM ".$prefix."topics WHERE (forum_id NOT IN ($forumexclude)) ORDER BY last_post DESC LIMIT $num",$ipb_db) or die(mysqli_error()); $row_resultf = mysqli_fetch_assoc($resultf); $totalRows_resultf = mysqli_num_rows($resultf); do { $topicstrip = $row_resultf['title']; if (strlen($topicstrip) > $topic_num_sym) { $topicstrip = substr($topicstrip,0,$topic_num_sym); $topicstrip = $topicstrip."..."; } $status = ($row_resultf['state'] == "closed") ? "<img src=\"forum/style_images/$img_path/f_closed.gif\" border=\"0\" alt=\"Тема закрыта\">" : ""; $attach = ($row_resultf['topic_hasattach'] == "1") ? "<img src=\"temp/A-Vector/images/files.gif\" border=\"0\" alt=\"В сообщении есть прикрепленные файлы\"> " : ""; $last_date = date($time,$row_resultf['last_post']); $bt.= "<small class=\"3\">$last_date:</small> <b><a title=\"".$row_resultf['title']."\" href=\"forum/index.php?showtopic=".$row_resultf['tid']."&view=getlastpost\">$topicstrip</a></b><br>"; } while($row_resultf = mysqli_fetch_assoc($resultf)); mysqli_free_result($resultf); echo $bt; return $bt; ?> Link to comment https://ipbmafia.ru/topic/21987-skript-vyvoda-poslednih-tem-na-php56-do-7/ Share on other sites Больше вариантов
4 марта, 20204 yr comment_161028 //====[Если не знаем PHP - дальше ничего не трогаем ]========= $link = mysqli_connect("$host", "$username", "$password", "$database"); mysqli_set_charset($link, "utf8"); $resultf = mysqli_query($link, "SELECT tid, title, state, posts, starter_id, last_poster_id, last_post, starter_name, last_poster_name, views, topic_hasattach FROM {$prefix}topics WHERE forum_id NOT IN ({$forumexclude}) ORDER BY last_post DESC LIMIT {$num}"); $totalRows_resultf = mysqli_num_rows($resultf); $row_resultf = mysqli_fetch_assoc($resultf); do { $topicstrip = $row_resultf['title']; if (strlen($topicstrip) > $topic_num_sym) { $topicstrip = substr($topicstrip,0,$topic_num_sym); $topicstrip = $topicstrip."..."; } $status = ($row_resultf['state'] == "closed") ? "<img src=\"forum/style_images/".$img_path."/f_closed.gif\" border=\"0\" alt=\"Тема закрыта\">" : ""; $attach = ($row_resultf['topic_hasattach'] == "1") ? "<img src=\"temp/A-Vector/images/files.gif\" border=\"0\" alt=\"В сообщении есть прикрепленные файлы\"> " : ""; $last_date = date($time,$row_resultf['last_post']); $bt.= "<small class=\"3\">".$last_date.":</small> <b><a title=\"".$row_resultf['title']."\" href=\"forum/index.php?showtopic=".$row_resultf['tid']."&view=getlastpost\">".$topicstrip."</a></b><br>"; } while($row_resultf = mysqli_fetch_assoc($resultf)); mysqli_free_result($resultf); echo $bt; return $bt; ?> Link to comment https://ipbmafia.ru/topic/21987-skript-vyvoda-poslednih-tem-na-php56-do-7/?&do=findComment&comment=161028 Share on other sites Больше вариантов
5 марта, 20204 yr Author comment_161034 Была бы здесь система репутации я бы накидал в репу👍 Проанализировал код: добавлены отступы для читаемости(об этом я не подумал, когда публиковал) Если кому интересно в чем различие и кто тоже не знает php, то был изменены переменные и добавлена функция mysqli_set_charset вместо цикла: $rd = "SET CHARACTER SET CP1251"; IF (!$result = mysql_query($rd)) { ECHO "ERROR!!!\n"; } $link = mysqli_connect("$host", "$username", "$password", "$database"); // Был $ipb_db стал $link mysqli_set_charset($link, "utf8"); // установка кодировки utf8 согласно стандартам php7. На php5 функции mysqli_set_charset нет $resultf = mysqli_query($link, "SELECT tid, title, state, posts, starter_id, last_poster_id, last_post, starter_name, last_poster_name, views, topic_hasattach FROM {$prefix}topics WHERE forum_id NOT IN ({$forumexclude}) ORDER BY last_post DESC LIMIT {$num}"); Link to comment https://ipbmafia.ru/topic/21987-skript-vyvoda-poslednih-tem-na-php56-do-7/?&do=findComment&comment=161034 Share on other sites Больше вариантов
5 марта, 20204 yr comment_161035 Еще я вам советую принять какой-нить единственный способ встраивания переменных в строки.. Либо "text " .$var . " text", либо "text {$var} text", это самые "ошибкобезопасные" методы. Метод "text $var text", бесспорно, красив, но конструкции типа $prefixtopics уже не получаются и его лучше не использовать. Link to comment https://ipbmafia.ru/topic/21987-skript-vyvoda-poslednih-tem-na-php56-do-7/?&do=findComment&comment=161035 Share on other sites Больше вариантов
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.