Bonjour,
Voilà, j'ai deux tables :
Table EVENEMENT
{
id
titre
descriptif
...
id_ville (foreign key -> references ville(id))
...
}
et la Table VILLE
{
id
nom_ville
}
Donc, qd j'enregistre un évenement dans la Table EVENEMENT, je dois d'abord vérifier que la "ville" saisie existe déjà ou non dans la Table VILLE. Si c'est le cas, je récupère l'id, sinon j'insert la nouvelle ville dans la Table VILLE et je récupère l'id...
pour mettre cet id dans les champs de mon "insert into EVENEMENT..."
J'ai d'abord essayé via du code php:
Le problème c'est que je fais un upload de fichier également, et ce code "bloque" l'upload de fichier (ça fait 3 jours que je cherche et je sais pas pourquoi !)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // je test l'existence ou non de la nouvelle ville dans la Table VILLE $req_ville = "SELECT nom_ville FROM ville WHERE nom_ville='$ville' "; $test_req_ville =mysql_query ($req_ville)or die('Erreur SQL !'.$req_ville.'<br>'.mysql_error()); //je regarde le nombre d'occurences retournées $test = mysql_num_rows($test_req_ville); // s'il y en a au moins 1, la table existe if( $test >0 ) { //la ville est déjà dans la base $req_ville = "SELECT id FROM ville WHERE nom_ville = '$ville' "; $id_test = mysql_query ($req_ville) or die('Erreur SQL !'.$req_ville.'<br>'.mysql_error()); $id_ville=mysql_query($req_ville); $id_ville = mysql_fetch_object($id_test); $id_ville = $id_ville->id; echo "la ville est déjà dans la base<BR>"; echo "$id_ville<BR>"; } else { //la ville n'existe pas encore dans la Table VILLE $req_ville = "INSERT INTO ville (nom_ville) VALUES ('$ville')"; mysql_query($req_ville) or die('Erreur SQL !'.$req_ville.'<br>'.mysql_error()); $id_ville=mysql_insert_id(); //echo "la ville a été rajouté dans la base<BR>"; //echo "$id_ville<BR>"; }
donc, je voulais savoir si ce serait pas mieux d'utiliser une procedure stockée directement, ou s'il n'existe pas une autre solution, via du code php, pour résoudre ce problème..?
Merci d'avance.
Partager