[RESOLU] Modifier valeur dans base mysql

Eléphant du PHP | 133 Messages

27 oct. 2015, 11:42

bonjour à tous ,

Voilà j'ai un script de "classement" sur mon site
Dans les colonnes, entre autres , j'ai : plus, moins, Total la base contient plus de 1000 lignes donc le faire à la main risque d'être très long.
je voudrais mettre les colonnes plus, moins, Total à Zéro .
le script contient une fonction RAZ mais elle efface toute la base, chose que je souhaite pas .
Après des recherches j'ai fini par monter ce code
<?php
include('config.php'); 
 
$sql="SELECT `vote_radio_titre`.`id`,`vote_radio_titre`.`fleche`,`vote_radio_titre`.`cover`,`vote_radio_titre`.`artiste`,`vote_radio_titre`.`titre`, `vote_radio_titre`.`plus`, `vote_radio_titre`.`moins`, `vote_radio_titre`.`total` FROM vote_radio_titre WHERE (`vote_radio_titre`.`total` >-999) ORDER BY `vote_radio_titre`.`total` DESC LIMIT 0,30";   
$result=mysql_query($sql);
 
// On compte le nombre de lignes dans la table
$count=mysql_num_rows($result);

for($i=0;$i<$count;$i++){
   $sql1="UPDATE vote_radio_titre SET plus='0', moins='0' , total='0' WHERE Id='$id[$i]'";
   $result1=mysql_query($sql1);
}
if($result1) {    echo "ok"; }
mysql_close();
?>


je me suis aidé pour charger la base de celui qui permet l'affichage,
pour tester j'ai faits une base identique mais avec 30 lignes j'ai réussi à passer tout à 0 , mais quand je le fais sur celui que je desire modifier il en oublie, et zap dès que le Total à un - .
le code au-dessus va surement vous paraître moche mais c'est mon premier code "maison" , j'ai utilisé celui qui gère ma base est un code qui était déjà existant .
ma base ce présente sous cette forme : id, fleche, cover, artiste, titre, plus, moins, total je cherche en une action à passer toutes les lignes à 0,0, 0 pour les paramètres +,-,=

Pour La ligne SELECT jai pris celle qui me permet de lire la base pour l'affichage et elle est sous cette forme
$sql="SELECT `vote_radio_titre`.`id`,`vote_radio_titre`.`fleche`,`vote_radio_titre`.`cover`,`vote_radio_titre`.`artiste`,`vote_radio_titre`.`titre`, `vote_radio_titre`.`plus`, `vote_radio_titre`.`moins`, `vote_radio_titre`.`total` FROM vote_radio_titre WHERE (`vote_radio_titre`.`total` >0) ORDER BY `vote_radio_titre`.`total` DESC LIMIT 0,30";
j'ai voulu l'adapter mais .............................. un peu perdu :oops:

Cdt Pascal

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 oct. 2015, 11:52

Bonjour,

Si c'est tous tes enregistrements que tu veux mettre à 0 pour ces 3 champs, alors il suffit d'une seule requête SQL :
UPDATE vote_radio_titre SET plus=0, moins=0 , total=0 WHERE 1
La clause WHERE 1 est toujours vraie donc va impacter toutes les lignes d'un seul coup.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 133 Messages

27 oct. 2015, 12:38

Super Merci :)

et pour cette partie
$sql="SELECT `vote_radio_titre`.`id`,`vote_radio_titre`.`fleche`,`vote_radio_titre`.`cover`,`vote_radio_titre`.`artiste`,`vote_radio_titre`.`titre`, `vote_radio_titre`.`plus`, `vote_radio_titre`.`moins`, `vote_radio_titre`.`total` FROM vote_radio_titre WHERE (`vote_radio_titre`.`total` >0) ORDER BY `vote_radio_titre`.`total` DESC LIMIT 0,30";
j'ai modifié en ceci
$sql="SELECT `vote_radio_titre`.`id`,`vote_radio_titre`.`fleche`,`vote_radio_titre`.`cover`,`vote_radio_titre`.`artiste`,`vote_radio_titre`.`titre`, `vote_radio_titre`.`plus`, `vote_radio_titre`.`moins`, `vote_radio_titre`.`total` FROM vote_radio_titre WHERE (`vote_radio_titre`.`total` >-99999) ORDER BY `vote_radio_titre`.`total` DESC LIMIT 0,30";
comment le faire plus propre ?

(Super ca marche nikel ,merciiiiii @rthur :) )

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 oct. 2015, 14:41

Quand tu fais une action que dans une seule table, tu n'as pas besoin de préciser son nom pour tous les champs :
SELECT `id`,`fleche`,`cover`,`artiste`,`titre`, `plus`, `moins`, `total` FROM vote_radio_titre WHERE (`total` >-99999) ORDER BY `total` DESC LIMIT 0,30
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 133 Messages

28 oct. 2015, 12:50

Super Merci :) je marque resolu