Insérer des données similaires dans deux tableaux en utilisant php
Question
J'ai le code suivant que j'utilise pour insérer des données de formulaire dans une seule table de ma base de données. "
function insert_interests($uid, $interests) {
/* first, we'll delete any entries this user already has in the table */
purge_lookup("jss_users_interests_table", $uid);
/* now create the sql insert query */
global $db;
$db->query(create_checkbox_query($interests, "jss_users_interests_table", $uid));
}
/* helper function for insert_interests(). removes all rows in $table with $uid */
function purge_lookup($table, $uid) {
global $db;
$db->query("DELETE FROM $table WHERE users_id = '".$db->escape($uid)."'");
}
/* helper function for insert_interests(). generates the actual SQL query */
function create_checkbox_query($arr, $table, $uid) {
$q = "INSERT INTO $table (users_id, subcategories_id) VALUES";
foreach ($arr as $check) {
$q .= " ( '$uid' , $check )" . ",";
}
/* remove the last comma and return */
return substr($q, 0, -1);
}`
Dans la foulée de ce code, j'aimerais utiliser les mêmes données de formulaire, associées à d'autres données d'une autre table, pour insérer un nouvel enregistrement dans une autre table. Voici la structure des deux tableaux.
jss_users_interests_table
- id_utilisateur
- sous-catégories_id
jss_info_requests_table
- id_utilisateur
- fournisseur_id
- sous-catégories_id
jss_providers_assignments_table
- fournisseur_id
- sous-catégories_id
Donc, ce que je dois faire après avoir inséré les données dans la jss_users_interests_table
est d'insérer les mêmes données avec chaque sous-catégorie
correspondant fournisseur_id
de la jss_provider_assignment_table dans la jss_info_requests_table . Avoir un sens? Suis-je en train de bouger et de compliquer les choses?
Toute aide sur la syntaxe serait géniale. Merci!
La solution
Ce SQL pourrait fonctionner.
INSERT INTO jss_info_requests_table
(users_id, provider_id, subcategories_id)
SELECT a.users_id,
b.provider_id, b.subcategories_id FROM
jss_users_interests_table a,
jss_providers_assignments_table b
WHERE a.subcategories_id =
b.subcategories_id AND a.users_id =
[USERID]