Je crois que la question a émergé comme mon irritation de faire deux fois plus de travail que je pourrais imaginer est nécessaire.La normalisation de base de données et le développement paresseux
J'accepte l'idée que je pourrais manquer d'expérience avec MySQL et PHP pour trouver une solution plus simple. Mon problème est que j'ai plusieurs tables (et j'ajouterais peut-être plus) et de celles-ci est une table parent, ne contenant que deux champs - un id (int) et un nom l'identifiant.
En ce moment, j'ai sept tables avec au moins 15 champs dans chacun. Chaque table a un champ, contenant l'identifiant que je peux lier à la table parente.
Il n'est pas nécessaire de remplir toutes ces données - il vous suffira de créer cette entrée dans la table parente. Pour les autres tableaux, j'ai des formulaires séparés.
Maintenant, ces formulaires sont faits pour mettre à jour les données dans les champs, ce qui signifie que je dois extraire les données de la table si des données sont disponibles.
Ce que je voudrais faire est quand je reçois les données de mon formulaire, je pourrais juste utiliser une requête UPDATE dans mon modèle. Mais si la table que je veux mettre à jour n'a pas d'entrée pour cet identifiant spécifique, j'ai besoin de faire une insertion.
Donc, mon code actuel pseudo est comme ceci:
$sql = "SELECT id FROM table_x WHERE parent_id = ".$parent_id;
$res = $mysql_query($sql);
if(mysql_num_rows($res) == 1)
{
$sql = "UPDATE table_x SET ... WHERE parent_id = ".$parent_id;
}
else
{
$sql = "INSERT INTO table_x VALUES (...)";
}
mysql_query($sql);
J'ai deux font cela pour chaque table que j'ai - je peux faire quelque chose de différent ou plus intelligent ou est-ce juste la façon dont il doit être fait ? Parce que cela me semble très inefficace.
C'était exactement ce que je cherchais. – Repox