2010-07-31 7 views
1

Je suis un peu nouveau sur SQL et PHP alors j'ai besoin d'aide ici. J'ai créé deux tables et je veux établir une «relation un-à-plusieurs», mais je ne peux pas comprendre comment je peux donner les données à travers le fichier php. Voici un code:comment connecter deux tables avec sql et php

CREATE TABLE `details` (
    `details_id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(30) NOT NULL, 
    `latitude` double NOT NULL, 
    `longitude` double NOT NULL, 
    `mytext` varchar(60) NOT NULL, 
    `description` varchar(600) NOT NULL, 
    `city_details` int(11) NOT NULL, 
    PRIMARY KEY (`details_id`), 
    FOREIGN KEY (`city_details`) REFERENCES city(`city_id`) 
    on update cascade 
); 

CREATE TABLE `city` (
    `city_id` int(11) NOT NULL AUTO_INCREMENT, 
    `cityName` varchar(30) NOT NULL, 
    PRIMARY KEY (`city_id`) 
); 

Je veux écrire un CityName et être en mesure de donner quelques données pour divers endroits de la ville. Comment puis-je créer un fichier php de sorte que je n'aurai qu'à donner le nom de la ville (à la table de la ville), puis écrire des choses pour plusieurs endroits à l'intérieur de la ville (aux détails de la table).

Répondre

1
$sql="SELECT * FROM `details` as d INNER JOIN `city` as c ON d.city_details=c.city_id;"; 

si vous voulez chercher un nom de ville, vous pouvez utiliser cette

$sql="SELECT * FROM `details` as d INNER JOIN `city` as c ON d.city_details=c.city_id WHERE c.cityName='The name you're looking for'"; 

puis chercher everyting de la table en utilisant ce code

while($row=mysql_fetch_assoc(mysql_query($sql))){ 
    echo $row['name']; //for name 
    echo $row['mytext']; //etc. 
} 

pour plus d'informations voir http://dev.mysql.com/doc/refman/5.1/en/join.html et http://php.net/manual/en/function.mysql-fetch-assoc.php

+0

le city_id ne devrait pas avoir la même valeur que city_details ??? – alecnash

+0

oui c'est où vous joignez les deux tables sur –

+0

mis à jour ma réponse la deuxième requête sélectionne tous les détails liés au nom que vous énoncez dans la clause where –