Requete sur des tables avec des Foreign Keys.
voila je vais essayer de m'expliquer étant nouveau dans le sujet Mysql/php
J'ai une table avec des cles etrangeres.
Code:
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
|
SET FOREIGN_KEY_CHECKS = 0;
-- -------------------------------------
-- Tables
DROP TABLE IF EXISTS `categorias`;
CREATE TABLE `categorias` (
`cat_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`cat_nome` VARCHAR(32) NOT NULL,
PRIMARY KEY (`cat_id`)
)
ENGINE = InnoDB
CHARACTER SET latin1 COLLATE latin1_swedish_ci;
DROP TABLE IF EXISTS `artigos`;
CREATE TABLE `artigos` (
`art_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`art_nome` VARCHAR(32) NOT NULL,
`art_desc` VARCHAR(50) NOT NULL,
`cat_id` INT(11) UNSIGNED NOT NULL,
PRIMARY KEY (`art_id`),
CONSTRAINT `FKcategorias` FOREIGN KEY `FKcategorias` (`cat_id`)
REFERENCES `categorias` (`cat_id`)
ON DELETE CASCADE
ON UPDATE CASCADE
)
ENGINE = InnoDB
CHARACTER SET latin1 COLLATE latin1_swedish_ci;
SET FOREIGN_KEY_CHECKS = 1; |
un chtit script pour recuperer les donnees de la db
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
<html>
<head><title>Pet Types</title></head>
<body>
<?php
require_once ("misc.php");
require_once ("Connexion.php");
require_once ("ExecRequete.php");
$connexion = Connexion(NOM, PASSE, BASE, SERVEUR);
$results = ExecRequete("SELECT * FROM artigos", $connexion);
echo "<table border=\"0\">\n";
while ($row = mysql_fetch_assoc($results)) {
echo "<tr>\n";
foreach($row as $value) {
echo "<td>\n";
echo $value;
echo "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?> |
on est d'accord a l'affichage j'aurais un tableau avec toutes les colonnes de la base "artigos". La derniere colonne aura l'ID de la categorie. Question: comment est que je dois formuler ma requete pour au lieu d'avoir l'ID de la table categories la nom de la categorie auquel correspond l?ID? Comment s'appelle cette technique de requete pour faire un search sur le forum?