par
Pitet » 11 févr. 2013, 18:24
Salut,
Pour vérifier si une insertion avec le même num a déjà été faite, tu dois faire deux requêtes : une première requête pour vérifier si la ligne existe déjà. La deuxième requête sera soit une insertion (INSERT) si la ligne n'existe pas, sinon elle sera une mise à jour (UPDATE) de la ligne existante.
// première requête pour vérifier si la ligne avec le même num existe déjà
$sql = "SELECT num FROM postes WHERE num = $num";
$res = mysql_query($sql);
if (mysql_num_rows($res) == 0) {
// aucune ligne déjà insérée avec le même num : on peut insérer la nouvelle ligne
$sql = "INSERT INTO postes (num,num_serie,marque,designation,conf,gestionnaire,situation,position,login) VALUES ('$num','$num_serie','$marque','$designation','$conf','$gestionnaire','$situation','$position','$login')";
[...]
} else {
// au moins une ligne avec le même num déjà insérée : on met à jour la ligne existante
$sql = "UPDATE postes SET num_serie = '$num', marque = '$marque', [...] WHERE num = '$num'";
}
Depuis la version 5.0 de Mysql, tu peux également utiliser la commande mysql REPLACE (
http://dev.mysql.com/doc/refman/5.0/fr/replace.html) comme ceci :
$sql = "REPLACE INTO postes (num,num_serie,marque,designation,conf,gestionnaire,situation,position,login) VALUES ('$num','$num_serie','$marque','$designation','$conf','$gestionnaire','$situation','$position','$login')";
Cette requête est équivalente au code écrit ci-dessus. La commande REPLACE va insérer ou mettre à jour la ligne en base de données en vérifiant si une ligne avec le même num existe déjà. Attention, il faut que ta table 'postes' ai un champ déclaré en tant que PRIMARY KEY. J'ai supposé que ton champ 'num' est bien la clé primaire de ta table 'postes'.
Salut,
Pour vérifier si une insertion avec le même num a déjà été faite, tu dois faire deux requêtes : une première requête pour vérifier si la ligne existe déjà. La deuxième requête sera soit une insertion (INSERT) si la ligne n'existe pas, sinon elle sera une mise à jour (UPDATE) de la ligne existante.
// première requête pour vérifier si la ligne avec le même num existe déjà
$sql = "SELECT num FROM postes WHERE num = $num";
$res = mysql_query($sql);
if (mysql_num_rows($res) == 0) {
// aucune ligne déjà insérée avec le même num : on peut insérer la nouvelle ligne
$sql = "INSERT INTO postes (num,num_serie,marque,designation,conf,gestionnaire,situation,position,login) VALUES ('$num','$num_serie','$marque','$designation','$conf','$gestionnaire','$situation','$position','$login')";
[...]
} else {
// au moins une ligne avec le même num déjà insérée : on met à jour la ligne existante
$sql = "UPDATE postes SET num_serie = '$num', marque = '$marque', [...] WHERE num = '$num'";
}
Depuis la version 5.0 de Mysql, tu peux également utiliser la commande mysql REPLACE ([url]http://dev.mysql.com/doc/refman/5.0/fr/replace.html[/url]) comme ceci :
$sql = "REPLACE INTO postes (num,num_serie,marque,designation,conf,gestionnaire,situation,position,login) VALUES ('$num','$num_serie','$marque','$designation','$conf','$gestionnaire','$situation','$position','$login')";
Cette requête est équivalente au code écrit ci-dessus. La commande REPLACE va insérer ou mettre à jour la ligne en base de données en vérifiant si une ligne avec le même num existe déjà. Attention, il faut que ta table 'postes' ai un champ déclaré en tant que PRIMARY KEY. J'ai supposé que ton champ 'num' est bien la clé primaire de ta table 'postes'.