Mysql SELECT LEFT JOIN din alta baza de date cu PDO
Scris: Sâm Noi 26, 2016
Salutare,
Vreau sa aduc intr-un SELECT doua tabele din doua baze de date. Am urmatoarele conexiuni la BD, nu stiu cat de corect le-am facut, dar orice modificare e bine venita.
bd_cnx.php:
get_val.php:
tabela users face parte din BD_1, iar tabela catalog din BD_2.
Nu stiu cum sa fac aceasta variabila $stmt sa aduca valori din ambele baze de date.
Multumesc!
Vreau sa aduc intr-un SELECT doua tabele din doua baze de date. Am urmatoarele conexiuni la BD, nu stiu cat de corect le-am facut, dar orice modificare e bine venita.
bd_cnx.php:
Cod: Selectaţi tot
<?php
//BD_1
// Datele de conectare (adresa_server, baza_de_date, nume si parola)
$hostdb = 'localhost';
$namedb = BD_1';
$userdb = 'root';
$passdb = '';
// Afiseaza mesaj daca s-a reusit conectarea, altfel, retine eventuala eroare
try {
$conn_BD_1 = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
// set the PDO error mode to exception
$conn_BD_1->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo 'Connected to database';
/* Instructiuni de lucru cu $conn_BD_1 */
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
<?php
//BD_2
// Datele de conectare (adresa_server, baza_de_date, nume si parola)
$hostdb = 'localhost';
$namedb = 'BD_2';
$userdb = 'root';
$passdb = '';
// Afiseaza mesaj daca s-a reusit conectarea, altfel, retine eventuala eroare
try {
$conn_BD_2 = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
// set the PDO error mode to exception
$conn_BD_2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo 'Connected to database';
/* Instructiuni de lucru cu $conn_BD_2 */
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Cod: Selectaţi tot
include 'bd_cnx.php';
$sql = "SELECT users.NUME,
users.PRENUME,
ROUND(AVG (catalog.NOTA),1) AS MEDIE
FROM catalog
LEFT JOIN catalog
ON catalog.ID = catalog.ID_CHESTIONAR
LEFT JOIN users
ON users.ID = catalog.ID_USERS
WHERE ID_CHESTIONAR = 1
GROUP BY catalog.ID_USERS
ORDER BY MEDIE DESC";
// Executa interogarea si retine datele returnate
$stmt = $conn_BD_1->query($sql);
// Daca select-ul e facut cu succes ($stmt nu e false)
if($stmt !== false) {
// Se parcurg si afiseaza datele selectate
foreach($stmt as $row) {
echo "$row['NUME']";
}
}
else {
echo "0 results";
}
$conn_BD_1 = null; // Inchidere conexiune
$conn_BD_2 = null; // Inchidere conexiune
Nu stiu cum sa fac aceasta variabila $stmt sa aduca valori din ambele baze de date.
Multumesc!