perdu dans un update php/mysql

SerAir
Invité n'ayant pas de compte PHPfrance

09 avr. 2011, 21:09

Bonjour à tous,
Débutant sur php/mysql, je vous expose mon problème

J'ai une tableA
champTexte | champInfosComplementaire | image
champTexte contient du texte,
champInfosComplementaire est vide
image est un champ vide à remplir

J'ai une tableB
id |champVille | champPays | image
id(PK) AI int
champVille est une chaîne de caractère unique
ChampPays est rempli
image est l'url d'une image

Je veux vérifier si pour chaque enregistrement de tableA, champTexte contient une des valeurs de champVille de tableB
Si c'est le cas, je voudrais attribuer à champInfosComplémentaire de tableA la valeur de champPays de tableB, et à tableA.image la valeur de tableB.image correspondante

je pensais à quelque chose du type

Code : Tout sélectionner

<?php require_once('../Connections/maconnexion.php'); ?> <?php mysql_select_db($database_lg, $lg); $querymaj = "SELECT * FROM tableB"; $resultmaj = mysql_query($querymaj, $lg) or die(mysql_error()); while($rowmaj = mysql_fetch_array($resultmaj)){ $valeurAchercher=$rowmaj['champVille']; $valeurAajouter=$rowmaj['ChampPays']; $valeurImage=$rowmaj['image']; mysql_query("UPDATE tableA JOIN tableB ON champTexte LIKE '%$valeurAchercher%' SET champInfosComplementaire =$valeurAajouter, image=$valeurImage "); } ?>
ou bien

Code : Tout sélectionner

mysql_query("UPDATE tableA, tableB SET champInfosComplementaire = $valeurAajouter, image=$valeurImage WHERE champTexte LIKE '%$valeurAchercher%'");
ou encore

Code : Tout sélectionner

mysql_query("UPDATE tableA SET champInfosComplementaire =$valeurAajouter, image=$valeurImage WHERE champTexte LIKE '%$valeurAchercher%' ");
Mais ça ne fonctionne pas. Je fais donc appel à vos lumières,

Merci d'avance pour vos réponses

P.S : champTexte ne peut contient pas plusieurs références

Eléphant du PHP | 55 Messages

10 avr. 2011, 11:48

Bonjour,
essayez avec ceci :
mysql_query("UPDATE tableA, tableB SET champInfosComplementaire = ".$valeurAajouter.", image=".$valeurImage." WHERE champTexte LIKE ".%$valeurAchercher%.""); 
8-)
http://lilou141203.labrute.com : merci de vous battre contre ma p'tite brute! :P

ViPHP
xTG
ViPHP | 7331 Messages

10 avr. 2011, 11:55

Il n'y aurai pas tout simplement une erreur ?
Tu n'échappes pas tes variables, utilises mysql_real_escape_string().

Et surtout : un champ autre qu'entier doit être entouré de quotes simple dans une requête.