Erreur php Update
6 messages
• Page 1 sur 1
- willpower
- WRInaute discret

- Messages: 208
- Inscription: 15 Mar 2007
Erreur php Update
bonjour a tous,
Je me demandais s'il etait possible admettons que je mets ce code:
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
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

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Erreur php Update
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.
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

- Messages: 208
- Inscription: 15 Mar 2007
Re: Erreur php Update
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...
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

- Messages: 208
- Inscription: 15 Mar 2007
Re: Erreur php Update
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.
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

- Messages: 2685
- Inscription: 13 Fév 2004
Re: Erreur php Update
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.
Jacques.
-

e-kiwi - Modérateur

- Messages: 15617
- Inscription: 23 Déc 2003
Re: Erreur php Update
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
6 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
