Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 35
1

Как подключить 2 таблицы MySQL к php?

13.10.2021, 19:20. Показов 1480. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Возникла такая надобность - подключить 2 таблицы mysql к сайту на php.
Есть таблица - form_1 и к примеру form_2
В обеих таблицах есть столбец - id. Мне его объединять не надо, нужно выводить информацию стобца id из каждой таблицы (везде он свой)
Как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2021, 19:20
Ответы с готовыми решениями:

Как подключить базу mysql php, поиск по базе с условием if
Привет! Парни помогите, пожалуйста, сам не программист, а сделать нужно. С большим трудом...

Как присвоить php-переменной значение из таблицы MySQL
Имеется БД MySQL состоящая из таблицы admin, которая состоит из 3-х столбцов id, login, pass. В ней...

Как правильно создать таблицы mysql, имея php код?
Доброго время суток. У меня есть php страниц,от которых нет таблиц в БД mysql Помогите...

Подключить MySQL к PHP
Всем доброго времени суток. Буду признателен за все попытки растолковать бездарю все нюансы и...

Как вывести данные в html страницу в виде таблицы из mysql. php
Вот так могу <?php require 'scripts/connect.php'; $sql_select = "SELECT * FROM pers"; $result...

9
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
13.10.2021, 20:52 2
Цитата Сообщение от MisTFoR Посмотреть сообщение
Возникла такая надобность - подключить 2 таблицы mysql к сайту на php.
да хоть 1000..... таблиц. подключается база данных а не каждая таблица отдельно
1
1302 / 776 / 190
Регистрация: 19.09.2020
Сообщений: 1,987
13.10.2021, 21:40 3
Вот так mysqli_real_connect
0
193 / 140 / 36
Регистрация: 19.11.2020
Сообщений: 881
13.10.2021, 21:58 4
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?php
 
class MSQLi {
    public $connection;
 
    public function __construct($hostname, $username, $password, $database, $port = '3306') {
        $this->connection = new \mysqli($hostname, $username, $password, $database, $port);
 
        if ($this->connection->connect_error) {
        /// throw new \Exception('Error: ' . $this->connection->error . '<br />Error No: ' . $this->connection->errno);
        exit(0);
    }
 
        $this->connection->set_charset("utf8mb4");
        $this->connection->query("SET SQL_MODE = ''");
    }
 
    public function query($sql) {
        $query = $this->connection->query($sql);
 
        if (!$this->connection->errno) {
            if ($query instanceof \mysqli_result) {
                $data = array();
 
                while ($row = $query->fetch_assoc()) {
                    $data[] = $row;
                }
 
                $result = new \stdClass();
                $result->num_rows = $query->num_rows;
                $result->row = isset($data[0]) ? $data[0] : array();
                $result->rows = $data;
 
                $query->close();
 
                return $result;
            } else {
                return true;
            }
        } else {
            throw new \Exception('Error: ' . $this->connection->error  . '<br />Error No: ' . $this->connection->errno . '<br />' . $sql);
        }
    }
 
    public function escape($value) {
        return $this->connection->real_escape_string($value);
    }
    
    public function countAffected() {
        return $this->connection->affected_rows;
    }
 
    public function getLastId() {
        return $this->connection->insert_id;
    }
    
    public function connected() {
        return $this->connection->ping();
    }
    
    public function __destruct() {
        $this->connection->close();
    }
 
    public function ConvertValue($value) {
        if(is_string($value)) {
            $value = '\''.$this->escape(trim($value)) . '\'';
        } elseif(is_array($value) || is_object($value)) {
            $value = '\''.$this->escape(json_encode($value)) . '\'';
        } elseif(is_bool($value)) {
            $value = '\'' . ($value ? 1 : 0) . '\'';
        } elseif(is_int($value) || is_float($value)) {
            $value = '\'' . $value . '\'';
        } else {
            $value = '\'\'';
        }
        return $value;
    }
 
    public function SELECT($tableName, array $ListWHERE = [], $WHERE = '') {
        foreach($ListWHERE as $key => $value) {
            $key = trim($key);
            if($WHERE <> '') {
                switch($key[0]) {
                    case '|':
                        $WHERE .= ' OR ';
                        $key = substr($key, 1);
                    break;
                    case '!':
                        $WHERE .= ' NOT ';
                        $key = substr($key, 1);
                    break;
                    default:
                        $WHERE .= ' AND ';
                }
            }
        
            $WHERE .= '`' . $key . '`=' . $this->ConvertValue($value);
        }
        if($WHERE <> '')
            $WHERE = ' WHERE ' . $WHERE;
 
        $tableName = $this->escape(trim($tableName));
        return $this->query("SELECT * FROM `{$tableName}` ".$WHERE);;
    }
 
    public function REPLACE($tableName, array $ListVALUES) {
        $tableName = $this->escape(trim($tableName));
        $KeysList = '';
        $ValuesList = '';
        foreach($ListVALUES as $key => $value) {
            if($ValuesList <> '')
                $ValuesList .= ', ';
 
            $ValuesList .= $this->ConvertValue($value);
 
            if($KeysList <> '')
                $KeysList .= ', ';
            $KeysList .= '`'.trim($key).'`';
        }
        return $this->query("REPLACE INTO `{$tableName}` ({$KeysList}) VALUES ({$ValuesList});");
    }
 
    public function UPDATE($tableName, array $ListSET, array $ListWHERE = [], $WHERE = '') {
        $tableName = $this->escape(trim($tableName));
 
        $strSET = '';
        foreach($ListSET as $key => $value) {
            if($strSET <> '')
                $strSET .= ', ';
        
            $strSET .= '`' . trim($key) . '`=' . $this->ConvertValue($value);
        }
 
        foreach($ListWHERE as $key => $value) {
            $key = trim($key);
            if($WHERE <> '') {
                switch($key[0]) {
                    case '|':
                        $WHERE .= ' OR ';
                        $key = substr($key, 1);
                    break;
                    case '!':
                        $WHERE .= ' NOT ';
                        $key = substr($key, 1);
                    break;
                    default:
                        $WHERE .= ' AND ';
                }
            }
        
            $WHERE .= '`' . $key . '`=' . $this->ConvertValue($value);
        }
        if($WHERE <> '')
            $WHERE = ' WHERE ' . $WHERE;
 
        return $this->query("UPDATE `{$tableName}` SET ".$strSET.$WHERE);;
    }
 
    
 
}


PHP
1
2
3
4
5
6
    $connection = new MSQLi($hostname, $username, $password, $database, $port);
    
    if(!$connection->connected()) {
        echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
        exit;
    }
Пример регистрации и авторизации
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
    case 'login':
        extract(ParsArgsArray(
            ['login', 'Логин не заполнена.'],
            ['password', 'Пароль не заполнена.']
        ));
 
        $password = md5($connection->escape($password));
 
    
        $Login = $connection->SELECT('User', ['login' => $login]);
 
        if($Login->row && $Login->row['password'] == md5($password)) {
            $user = [
                'id' => $Login->row['id'],
                'login' => $Login->row['login'],
                'name' => $Login->row['name'],
                'role' => $Login->row['role'],
                'hash' => $Login->row['hash'],
                'password' => $password
            ];
 
            setcookie('AuthUserSite', base64_encode(serialize($user)), time() + 3600 * 24 * 30, "/");
 
            returnOut([
                'error' => false,
                'message' => 'Вы успешно вошли!.',
                'Success' => true
            ]); 
        } else {
            returnOut([
                'error' => true,
                'message' => 'Логин или пароль - неверный.',
            ]);
        }
    break;
    case 'registration':
        if(!$AuthUserSiteAdmin) {
            returnOut([
                'error' => true,
                'message' => 'Нет нужных привилегий.',
            ]);
        }
 
        extract(ParsArgsArray(
            ['name', 'Имя не заполнено.'],
            ['login', 'Логин не заполнен.'],
            ['password', 'Пароль не заполнен.'],
            ['password2', 'Проверочный пароль не заполнен.'],
            ['role', 'Тип занятости не заполнен.'],
        ));
 
        $role = (int)trim($role);
 
        $errorList = '';
 
        if(mb_strlen($login) < 3)
            AddInfoText($errorList, 'Логин меньше 3 символов');
 
        if(mb_strlen($password) < 5)
            AddInfoText($errorList, 'Пароль меньше 5 символов');
 
        if($password <> $password2)
            AddInfoText($errorList, 'Проверочный пароль не совпадает');
 
        $is = $connection->SELECT('User', ['login' => $login]);
 
        if($is->row)
            AddInfoText($errorList, 'Уникальный ID занят.');
 
        if($errorList) {
            returnOut([
                'error' => true,
                'message' => $errorList,
            ]); 
        }
 
        $password = md5(md5($password));
 
        $hash = hash('sha256', $password);
 
        if($connection->REPLACE('User', [
                'login' => $login,
                'password' => $password,
                'hash' => $hash,
                'name' => $name,
                'role' => $role,
                'time' => date("Y-m-d H:i:s")
        ]) ===true) {
            returnOut([
                'error' => false,
                'message' => 'Вы успешно зарегистрировались',
                'Success' => true
            ]);
        } else {
            returnOut([
                'error' => true,
                'message' => 'Произошла ошибка при регистрации',
            ]);
        }
    break;
0
1302 / 776 / 190
Регистрация: 19.09.2020
Сообщений: 1,987
13.10.2021, 22:12 5
OpXiv, мне почему-то кажется, что человек мягко говоря не знает PHP и ему все эти простыни из кода как мёртвому припарка
0
193 / 140 / 36
Регистрация: 19.11.2020
Сообщений: 881
13.10.2021, 22:24 6
Цитата Сообщение от KingdaKa Посмотреть сообщение
не знает PHP
Ну данный класс облегчает работу работы с базой данных. Потому что лично мне, дико неудобно каждый раз строки заворачивать правильно.

Я конечно знаю, что есть более удобные классы, например в laravel
PHP
1
$email = DB::table('users')->where('name', 'John')->value('email');
Но для моих потребностей, это больше чем нужно
0
1263 / 960 / 226
Регистрация: 01.10.2018
Сообщений: 3,716
13.10.2021, 23:06 7
Цитата Сообщение от MisTFoR Посмотреть сообщение
В обеих таблицах есть столбец - id. Мне его объединять не надо, нужно выводить информацию стобца id из каждой таблицы (везде он свой)
Как это сделать?
Можно так (таблица заказов и таблица новостей используются на одном и том же сайте):
Как сделать так, чтобы при нажатии на заказ был переход и высвечивалась полная инфа по заказу на странице-шаблоне?
Как создать php скрипт для вывода html страниц?

Если речь о выводе идентификаторов нескольких записей из каждой таблицы, просто цикл для вывода записей используете. Выбираете, конечно, не одну запись по id, а какую-то группу записей или все записи. На том же демонстрационном сайте это есть, но представлено не очень наглядно из-за наличия в каждой таблице только по одной записи:
hyde.pageshop.ru/tables/order (можно сделать и просто /order)
hyde.pageshop.ru/tables/news (можно сделать и просто /news)

Код на форуме присутствует, но он сложнее, чем вам это нужно (позволяет вывести не только id, а любые поля, которые есть в таблицах), поэтому показывать не буду.
0
crautcher
14.10.2021, 18:22
  #8

Не по теме:

Цитата Сообщение от OpXiv Посмотреть сообщение
Я конечно знаю, что есть более удобные классы, например в laravel
Почемы бы их не юзать тогда :coffee2: ? Либа базы ставится отдельно от Лары и она вполне независимая

0
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 35
16.10.2021, 19:22  [ТС] 9
Решил проблему
SQL
1
2
3
$result = $db->PREPARE("SELECT DISTINCT ep.title, ep.id_channel AS ep_id, ch.id_channel AS ch_id, ch.epg_filename FROM epg ep
                        LEFT JOIN channel ch ON ep.id_channel = ch.id_channel
                        LIMIT 15");
0
1263 / 960 / 226
Регистрация: 01.10.2018
Сообщений: 3,716
16.10.2021, 19:40 10
Цитата Сообщение от MisTFoR Посмотреть сообщение
Решил проблему
Хорошо. И впредь лучше решайте сами, потому что задавать вопросы вы, очевидно, не умеете.

Добавлено через 3 минуты

Не по теме:

- Сколько будет дважды два?
- 4.
- 5 :)
- Решил проблему: E = mc2 :D

0
16.10.2021, 19:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2021, 19:40
Помогаю со студенческими работами здесь

Как подключить несколько таблиц одной базы (MySql) в один файл .php и выводить данные из них? Одну таблицу вывожу так:
Поключение к базе: &lt;?php $mysqli = false; function connectDB () { global $mysqli; ...

Как отобразить выборочный столбец таблицы из MySQL во флэш в компоненте List через PHP
Как отобразить таблицу из БД MySQL во флэш? если понадобятся компоненты List, DataGrid &lt;?php...

MySQL не подключается к php. Прописала код создания таблицы в php, но в phpmyadmin (в базе) таблица не создается
MySQL не подключается к php. Прописала код создания таблицы в php, но в phpmyadmin (в базе) таблица...

Не удается подключить mysql к связке apache+php
Установелны апач и php, всё работает. Установил Mysql, из коммандной строки тоже всё работает. Но...

Как подключить MySQL к phpMyAdmin (где взять пароль от mysql)?
Такой вопрос, поставил Денвер, всё работает и установка CMS пошла (В частности Drupal) Дело то в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru