@phoenix777333

Как подключиться к базе данных, для последующего вывода информации?

Существует файл подключения db.php к базе данных.
<?php
$db_name            = 'infoin';
$db_host            = 'localhost';
$db_user            = 'admin';
$db_password        = '123456';


$link = mysql_connect($db_host,$db_user,$db_password,$db_name);

mysql_select_db($db_name,$link) or die("Нет соединения с БД " .mysql_error());
mysql_query("SET names cp1251");

  class db {

    function __construct()
    {
        global $dbh;
        if (!is_null($dbh)) return;
        $dbh = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
        mysql_select_db(DB_NAME);
        mysql_query('SET NAMES utf8');
    }

    function select_list($query)
    {
        $q = mysql_query($query);
        if (!$q) return null;
        $ret = array();
        while ($row = mysql_fetch_array($q, MYSQL_ASSOC)) {
            array_push($ret, $row);
        }
        mysql_free_result($q);
        return $ret;
    }
  }
?>

Я уже пробовал различную реализацию кода для решения этой проблемы. У меня в файле подключения выводит ошибки одну за одной, но в целом этого подключения не происходит. Исправляя одну ошибку, появляется другая, может есть что-то фундаментальное, что я делаю не так, может сам подход. Есть search.php, который выводит на файл do_search.php, в файле do_search.php происходит подключение к базе.
<?php
if (isset($_POST['search']))
{
    include('include/db.php');
    $db = new db();
    $word = mysql_real_escape_string($_POST['search']);
    $sql = "SELECT * FROM info_db_5 WHERE title LIKE '%" . $word . "%'";
    $row = $db->select_list($sql);
    if(count($row)) 
    {
        $end_result = '';
        foreach($row as $r)
        {
            $result = $r['title'];
            
            $bold = '<span class="found">' . $word . '</span>';
            $end_result .= '<li>' . str_ireplace($word, $bold, $result) . '</li>';
        }
        echo $end_result;
    }
    else
    {
        echo '<li>No results found</li>';
    }
}
?>

А также javascript в html
<script type="text/javascript">
 
    $(function() {
 
        $(".search_button").click(function() {
            var searchString    = $("#search_box").val();
            var data            = 'search='+ searchString;
            if(searchString) {
                $.ajax({
                    type: "POST",
                    url: "do_search.php",
                    data: data,
                    beforeSend: function(html) {
                        $("#results").html('');
                        $("#searchresults").show();
                        $(".word").html(searchString);
                   },
                   success: function(html){
                        $("#results").show();
                        $("#results").append(html);
                  }
                });
            }
            return false;
        });
    });
    </script>

В основном проблемы возникают только с подключением к базе, как всегда естественно. Поэтому я некоторые параметры изменил, однако подключение всё равно не работает, не могу понять почему. Может быть ошибка в форматировании или ещё где-то. Однако сейчас указывает
Warning: mysql_connect() - 
Warning: mysql_connect(): in D:\OSPanel\domains\devitera.com\include\db.php on line 19

Warning: mysql_connect(): in D:\OSPanel\domains\devitera.com\include\db.php on line 19
No results found
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
А какая ошибка то?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы