Requete sql

rutchyweb Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
rutchyweb Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
Probleme insertion avec update:
il s'agit d'insérer un flux de produit xml
et mettre le favori des des produits définis en 1 et les autres 0;
et la requete n'execute pas le update:
Voici la requete:

if(!empty($reservation) && !empty($prix)){

$req = "insert into matable (nom_prod,ville_depart, pays_arrivee, ville_arrivee,
reservation, prix,flux,favori)
VALUES ('".mysql_real_escape_string($nom_prod)."','".mysql_real_escape_string($ville_depart)."','".mysql_real_escape_string($pays_arrivee)."','".mysql_real_escape_string($ville_arrivee)."',
'$reservation','".mysql_real_escape_string($val_desc_titre)."','fluxun',0";

mysql_query($req) or die (mysql_error($conn));
i++;
}

//top produits
if($req)

$req="update matable set favori='1' WHERE ('nom_produit' like 'Hôtel un' and 'ville_arrivee' like 'Paris' and 'flux' like '%fluxun%') AND ('nom_produit' like 'Hôtel deux' and 'ville_arrivee' like 'Berlin' and 'flux' like '%fluxun%') AND
('nom_produit' like 'Hôtel trois' and 'pays_arrivee' like 'Tokyo' and 'flux' like '%fluxun%')AND
('nom_produit' like 'Hôtel quatre' and 'pays_arrivee' like 'Mexique' and 'flux' like '%fluxun%') AND
('nom_produit' like 'Club cinq' and 'ville_arrivee' like 'Italie' and 'flux' like '%fluxun%')";
mysql_query($req) or die (mysql_error($conn));
$i++;
}
}
echo ' FINI !!!!!!! '.$i++." enregistrements";

et voilà la requete, lors de l'execution seule l'insertion est prise en compte et le update ne l'est pas.
Le but c'est de mettre la valeur de favori des produits dans upadate à 1 et les restes à 0.
Merci de bien vouloir m'aider.

2 réponses

Utilisateur anonyme
 
Bonjour

Première remarque : ton if ($req) après le //top produits ne sert à rien, il est toujours vrai car $req est une chaîne de caractères ('Insert...') non équivalente à 'false'.

Quant au UPDATE, s'il ne marche pas, c'est parce que tes conditions sont contradictoires : il y a des 'and' partout alors que je suppose que tu voulais en fait mettre des 'OR' entre les parenthèses.

et il ne sert à rien d'utiliser LIKE sans joker (%) comme dans `pays_arrivee` like 'Tokyo' : autant mettre =
1
rutchyweb Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, j'ai corrigé la requête et c'est ok
AND -> OR

mais il fallait que je modifie mon script pour que ça marche mais c'est ok.

Merci.
0