J'ai semblerait-il un problème de connexion, que je n'arrive pas à résoudre.
J'ai trouvé sur le net un morceau de script qui permet de vérifier l'existence de doublon dans une base, afin de ne pas inserer deux fois le même élément. Je l'ai amélioré en récupérant l'ID de l'enregistrement existant.
Pour la première table ça marche parfaitement, mais dès la seconde, mysql_query me retourne FALSE, et crée une erreur du type "mysql_num_rows(): supplied argument is not a valid MySQL result resource".
J'ai tout essayé : changer mes variables, fermer et rouvrir ma connexion, inverser l'ordre de mes appels... rien n'y fait !!!
Voici le code :
$objConn=mysql_connect(...);
$objMaBase=mysql_select_db('db', $objConn);
$verif = "SELECT annee FROM t_annee WHERE annee=".$annee;
$queryCheck = mysql_query($verif, $objConn);
$check = mysql_num_rows($queryCheck);
if($check!=0){
$req_id = "SELECT id_annee FROM t_annee WHERE annee=".$annee;
$recup_id = mysql_query($req_id, $objConn);
$affich_id = mysql_fetch_array($recup_id);
$id_annee = $affich_id['id_annee'];
}else{
$sql = "INSERT INTO t_annee (annee) VALUES ('$annee')";
$requete = mysql_query($sql, $objConn) or die( mysql_error() );
}
$verif = 'SELECT genre FROM t_genre WHERE genre='.$genre;
$queryCheck = mysql_query($verif, $objConn); // <---- C'est ici que ça coince
$check = mysql_num_rows($queryCheck); // <--- ici est retournée l'erreur "supplied argument..."
if($check!=0){
$req_id = "SELECT id_genre FROM t_genre WHERE genre=".$genre;
$recup_id = mysql_query($req_id, $objConn);
$affich_id = mysql_fetch_array($recup_id);
$id_genre = $affich_id['id_genre'];
}else{
$sql = "INSERT INTO t_genre (genre) VALUES ('$genre')";
$requete = mysql_query($sql, $objConn) or die( mysql_error() );
}
Code : Tout sélectionner
-- Version du serveur: 5.0.67
CREATE TABLE t_annee (
id_annee int(11) NOT NULL auto_increment,
annee int(4) default NULL,
PRIMARY KEY (id_annee)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE t_genre (
id_genre int(11) NOT NULL auto_increment,
genre varchar(20) default NULL,
PRIMARY KEY (id_genre)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;