Erreur php Update

willpower
WRInaute discret
WRInaute discret
 
Messages: 208
Inscription: 15 Mar 2007

Erreur php Update

Message le Lun Avr 12, 2010 22:25

bonjour a tous,

Je me demandais s'il etait possible admettons que je mets ce code:
Code: Tout sélectionner
mysql_query("UPDATE kvd.products_description SET products_name='$descrip_e', products_description='$descrip_e' WHERE products_url = '$num_style' AND language_id = '1'");


Que si jamais le code plutot que de rien faire s'il ne trouve pas l'endroit ou products_url = '$num_style' AND language_id = '1' que je lui fasse faire un autre code facilement, ou dois je y allez absolument par faire un autre script avant?

Merci

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Erreur php Update

Message le Mar Avr 13, 2010 1:14

Je suppose que tu veux faire un INSERT si le UPDATE ne trouve rien?

En mysql (ce n'est pas du SQL standard) tu peux utiliser ça:

http://dev.mysql.com/doc/refman/5.1-maria/en/insert-on-duplicate.html

Si c'est autre chose, ben il va falloir préciser.

Jacques.

willpower
WRInaute discret
WRInaute discret
 
Messages: 208
Inscription: 15 Mar 2007

Re: Erreur php Update

Message le Mar Avr 13, 2010 2:17

jcaron a écrit:Je suppose que tu veux faire un INSERT si le UPDATE ne trouve rien?

En mysql (ce n'est pas du SQL standard) tu peux utiliser ça:

http://dev.mysql.com/doc/refman/5.1-maria/en/insert-on-duplicate.html

Si c'est autre chose, ben il va falloir préciser.

Jacques.


Jacques en plus d'etre bon en php tu lis dans mes pensées... :D Je veus en effet faire une Insert.

J'ai lu la page que tu m'a envoyé et voila les problemes que je crois que je vais avoir.
Ma base est fait comme ca:(juste un exemple c'est pas les vrai nom)
style === descrip === langue
25 ==== green === 1
25 ==== vert === 2
26 ==== red === 1
27 ==== blue === 1
27 ====bleu ===2

Donc c'est sur que des fois le numero de style est double et certaine couleurs aurait la meme couleur et donc je ne peus pas iniquer de primary key ou unique index.

J'ai aussi trouvé la fonction mysql_affected_rows...et ca serait bien, sauf que ca me donne toujours 0. Apres de longue recherche je me suis rendu compte que c'était du a que mysql_affected_rows ne compte pas une ligne comme affecter si les valeurs reste les meme.

mon bout de script était donc rendu comme ca:
Code: Tout sélectionner
mysql_query("UPDATE kvd.products_description SET products_name='$descrip', products_description='$descrip' WHERE products_url = '$num_style' AND language_id = '5'");
if(mysql_affected_rows() == 0){
echo "$num_style existe pas en francais donc ajouter<br>";
//mysql_query("INSERT INTO kvd.products_description (language_id, products_name, products_description, products_url ) VALUES ('5', '$descrip', '$descrip', '$num_style')");
}


Je crois que je n'aurrai pas le choix de faire un select avec un mysql_num_rows...mais ca allourdi le code pour rien je trouve..non? aucune suggestion?

willpower
WRInaute discret
WRInaute discret
 
Messages: 208
Inscription: 15 Mar 2007

Re: Erreur php Update

Message le Mar Avr 13, 2010 4:01

Bon j'ai trouve cette fonction, sauf que elle ne marche pas dans une loop.

function mysql_modified_rows () {
$info_str = mysql_info();
$a_rows = mysql_affected_rows();
ereg("Rows matched: ([0-9]*)", $info_str, $r_matched);
return ($a_rows < 1)?($r_matched[1]?$r_matched[1]:0):$a_rows;
}

Je recois ce message d'erreur:
[Mon Apr 12 22:34:40 2010] [error] PHP Fatal error: Cannot redeclare mysql_modified_rows() (previously declared in /home/httpd/vhosts/nomdedomain.ca/httpdocs/everything2.php:36) in /home/httpd/vhosts/nomdedomain.ca/httpdocs/everything2.php on line 35

En plus je crois que cette fonction est aussi lourde que de faire un autre SELECT.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Erreur php Update

Message le Mar Avr 13, 2010 11:33

Mon humble avis est que dans ta table, la combinaison (style,langue) est forcément unique, non? Dans ce cas tu définis ces deux champs comme étant la clef primaire, et tu peux utiliser INSERT ... ON DUPLICATE :-)

Jacques.


e-kiwi
Modérateur
Modérateur
 
Messages: 15617
Inscription: 23 Déc 2003

Re: Erreur php Update

Message le Mar Avr 13, 2010 13:25

willpower, ton message semble dire que tu inclus deux fois le même fichier qui contient la définition de la variable. met cette fonction dans un fichier à part et fais un requiere_once pour ne pas l'inclure deux fois


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité