Requete sql

Fermé
rutchyweb Messages postés 11 Date d'inscription vendredi 31 janvier 2014 Statut Membre Dernière intervention 28 janvier 2015 - Modifié par rutchyweb le 5/05/2014 à 16:32
rutchyweb Messages postés 11 Date d'inscription vendredi 31 janvier 2014 Statut Membre Dernière intervention 28 janvier 2015 - 13 mai 2014 à 11:36
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
6 mai 2014 à 00:50
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 vendredi 31 janvier 2014 Statut Membre Dernière intervention 28 janvier 2015
13 mai 2014 à 11:36
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