Problème avec page de mise à jour de tous les membres mysql
astuces_jeux
Messages postés731Date d'inscriptionmercredi 15 novembre 2000StatutMembreDernière intervention27 mai 2010
-
13 juin 2008 à 19:51
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 2010
-
13 juin 2008 à 23:12
Bonjour,
J'ai fais une page qui sera lancée automatiquement tout les soirs à minuit :
<?php
if (isset($_POST['mise_a_jour']))
{
/*En gros, le vrai code de la MAJ commence ici.
Avant, ce n'était que pour déclencher la MAJ.
Mais comme je suppose que tu feras ça de manière automatique...
______________________________________________________
Début de la MAJ des métiers
______________________________________________________
*/
$connect = mysql_connect("localhost","cdd_dinolife","*******");
/* selection de la base de donnée mysql */
mysql_select_db("cdd_dinolife", $connect);
$retour_metiers = mysql_query("SELECT pf_rubis FROM phpbb_profile_fields_data");
$retour_metiers = mysql_query("SELECT pf_metier FROM phpbb_profile_fields_data");
$retour_metiers = mysql_query("SELECT user_id FROM phpbb_users");
while ($donnees_metiers = mysql_fetch_array($retour_metiers))
{
$metiers = $donnees_metiers['pf_metier'];
$rubis_initiales = $donnees_metiers['pf_rubis'];
$id = $donnees_metiers['user_id'];
/*Attention, dans les métiers, je ne sais pas comment tu les as écrit...Ç'aurait été plus simple avec des nombres, comme 1 star, 2 mécanicien, et pas mécanitien... ^^
Donc, à toi de voir.
Honnêtement, je priviliègerai les nombres, à la place des noms.
*/
switch ($metiers) {
case '2':
$rubis_a_ajouter = 2;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='2'";
break;
case '3':
$rubis_a_ajouter = 460;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='3'";
break;
case '4':
$rubis_a_ajouter = 150;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='4'";
break;
case '5':
$rubis_a_ajouter = 50;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='5'";
break;
case '6':
$rubis_a_ajouter = 350;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='6'";
break;
case '7':
$rubis_a_ajouter = 75;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='7'";
break;
case '8':
$rubis_a_ajouter = 100;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='8'";
break;
case '9':
$rubis_a_ajouter = 68;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='9'";
break;
case '10':
$rubis_a_ajouter = 12;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='10'";
break;
case '11':
$rubis_a_ajouter = 22;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='11'";
break;
case '12':
$rubis_a_ajouter = 100;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='12'";
break;
case '13':
$rubis_a_ajouter = 70;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='13'";
break;
case '14':
$rubis_a_ajouter = 85;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='14'";
break;
case '15':
$rubis_a_ajouter = 52;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='15'";
break;
case '16':
$rubis_a_ajouter = 12;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='16'";
break;
case '17':
$rubis_a_ajouter = 56;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='17'";
break;
case '18':
$rubis_a_ajouter = 50;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='18'";
break;
case '19':
$rubis_a_ajouter = 150;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='19'";
break;
case '20':
$rubis_a_ajouter = 50;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='20'";
break;
case '21':
$rubis_a_ajouter = 40;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='21'";
break;
case '22':
$rubis_a_ajouter = 31;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='22'";
break;
case '23':
$rubis_a_ajouter = 200;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='23'";
break;
case '24':
$rubis_a_ajouter = 2000;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='24'";
break;
case '25':
$rubis_a_ajouter = 4000;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='25'";
break;
case '26':
$rubis_a_ajouter = 7000;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='26'";
break;
case '27':
$rubis_a_ajouter = 500;
$rubis_totales = $rubis_a_ajouter+$rubis_initiales;
$requete_ajout_emeraudes = "UPDATE phpbb_profile_fields_data SET pf_rubis='$rubis_totales' WHERE pf_metier='27'";
break;
}
mysql_query($requete_ajout_emeraudes);
echo $donnees_metiers['user_id'] . '==> fait
';
/*
______________________________________________________
Fin de la MAJ des métiers
______________________________________________________
*/
}
mysql_close();
}
else
{
?>
<form method="post" action="maj_metiers.php">
</form>
<?php
}
?>
Mais j'ai un problème, il met "id => fait"
Mais le champ "pf_rubis" ne chnage pas dans MySQL.
Avez-vous une idée ?
JoJo738
Messages postés1267Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention29 juin 20102 13 juin 2008 à 23:10
Hello,
Hum ... je comprend pas trop ton code :s
$retour_metiers = mysql_query("SELECT pf_rubis FROM phpbb_profile_fields_data");
$retour_metiers = mysql_query("SELECT pf_metier FROM phpbb_profile_fields_data");
$retour_metiers = mysql_query("SELECT user_id FROM phpbb_users");
??? Petit problème là ... les deux autres sont écrasées !
Pas trop compris non plus le fonctionnement de l'atribution des rubis :s
Tu fais quoi ? une M.A.J. pour rajouté des points par métier ? ou par user ?
UPDATE phpbb_profile_fields_data SET pf_rubis ='$rubis_totales' WHERE pf_metier='27'
La tu fais une M.A.J.de tous les users ayants le métier 27 ...
En plus, ton switch est énorme !!!
Regarde le mien ;)
while ( $row_pf = mysql_fetch_assoc($query_pf) )
{
$rubis_add = 0;
switch ($metiers)
{
case 2 :
$rubis_add = 2;
break;
case 3 :
$rubis_add = 460;
break;
case 4 :
$rubis_add = 150;
break;
/*
* ...
*/
}
if( $rubis_add <> 0 )
{
$sql = mysql_query('UPDATE phpbb_profile_fields_data SET pf_rubis += ' . $rubis_add . ' WHERE pf_metier = ' . $metier) or die(mysql_error());
}
}
Par contre, si j'étais toi, je mettrais dans ma base de donnée, une table avec mes métiers (qui corespond aux 1, 2, 3, 4, ...) et j'ajouterais un champ 'add_rubis_days' et avec une seule requete, le tour serait joué.
UPDATE ma_table as t1, ma_table_metiers as t2 SET t1.pf_rubis +t2.add_rubis_days WHERE t2.metier_id t1.pf_metier
^_____^
<hr />Si ma reponse te convient, merci de l'accepter !