Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour, j'ai une table villes et une autre pays. La jointure ne ce fait pas. Besoin d'aide. Merci d'avance.
villes.php
<?php
$mysqli = new mysqli('localhost', 'root', '', 'exercice_projet_villes');
$mysqli->set_charset("utf8");
?>
<?php
$result = $mysqli->query('SELECT ville_id, ville_nom FROM villes');
while ($row = $result->fetch_array()) {
$villes[$row['ville_id']] = $row['ville_nom'];
}
$result = $mysqli->query('SELECT pays.pays_id, pays_nom FROM pays INNER JOIN villes
WHERE pays.pays_id = villes.pays_id GROUP BY pays_nom ORDER BY pays_nom');
while ($row = $result->fetch_array()) {
$pays_liste[$row['pays_id']] = $row['pays_nom'];
echo '<pre>';
print_r($pays_liste);
echo '</pre>';
}
?>
<ul>
<?php
if (!empty($villes)) {
foreach ($villes as $id => $ville) : ?>
<li><a href="ville.php?id=<?php echo $id; ?>"><?php echo $ville; ?></a></li>
<?php endforeach ?>
<?php } ?>
</ul>
<ul>
<?php
if (!empty($pays_liste)) {
foreach ($pays_liste as $id => $pays) : ?>
<li><a href="pays.php?id=<?php echo $id; ?>"><?php echo $pays; ?></a></li>
<?php endforeach ?>
<?php } ?>
</ul>
<?php
$result->free();
$mysqli->close();
?>
pays.php
<?php require('includes/inc-connexion.php'); ?>
<?php
$pays_id = $_GET['id'];
$result = $mysqli->query('SELECT pays_nom, ville_nom, ville_id FROM pays INNER JOIN villes
WHERE villes.pays_id = pays.pays_id AND pays.pays_id = ' . $pays_id);
while ($row = $result->fetch_array()) {
$pays_nom = $row['pays_nom'];
$villes[$row['ville_id']] = $row['ville_nom'];
}
?>
<?php
$result->free();
$mysqli->close();
?>
Hors ligne
Bonjour,
Difficile de vous répondre sans connaître la structure des tables.
Cependant pour pouvoir effectuer la jointure il vous faudrait une colonne pays_id dans votre table VILLES.
Ainsi vous pourriez écrire la requête suivante :
Ensuite dans votre code vous réutilisez les mêmes nom de variables en PHP, ce qui peut créer des conflits.
A+
Dernière modification par Jc (12-09-2019 17:00:08)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Pages :: 1