[Recrutement] Aide Update sql

Bonjour,

J'essaye de faire un petit module pour le jeu World of Warcraft qui concerne les recrutements de joueur. Jusque la rien de bien complexe, j'ai fais la partie visible pour le visiteur lambda avec une connection à une BDD, si je modifie manuellement la BDD, les modifications apparaissent bien. La ou je bloque, malgré de nombreuse heures de recherche, c'est l'UPDATE sql coté administration.

Je fais le tout par des select option, mais je n'arrive pas a mettre a jours la base, je sèche sur la façon de bien gérer chaque select. A savoir qu'il y a 2 BDD, une avec les classes et spécialisation de chacun ( 3 à 4 ) et l'autre avec le besoin de celles-ci.

Voici les BDD :

Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4.  
  5.  
  6. --
  7. -- Structure de la table `recrutement`
  8. --
  9.  
  10. CREATE TABLE IF NOT EXISTS `recrutement` (
  11.   `id` int(11) NOT NULL AUTO_INCREMENT,
  12.   `classe` varchar(100) NOT NULL,
  13.   `spe1` varchar(100) NOT NULL,
  14.   `spe2` varchar(100) NOT NULL,
  15.   `spe3` varchar(100) NOT NULL,
  16.   `spe4` varchar(100) NOT NULL,
  17.   PRIMARY KEY (`id`)
  18. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;
  19.  
  20. --
  21. -- Contenu de la table `recrutement`
  22. --
  23.  
  24. INSERT INTO `recrutement` (`id`, `classe`, `spe1`, `spe2`, `spe3`, `spe4`) VALUES
  25. (1, 'Chaman', 'Restauration', 'Elementaire', 'Amélioration', ''),
  26. (2, 'Chasseur', 'Bête', 'Précision', 'Survie', ''),
  27. (3, 'Demoniste', 'Déstruction', 'Démonologie', 'Affliction', ''),
  28. (4, 'Dk', 'Sang', 'Givre', 'Impie', ''),
  29. (5, 'Druide', 'Equilibre', 'Restauration', 'Gardien', 'Farouche'),
  30. (6, 'Guerrier', 'Protection', 'Arme', 'Fureur', ''),
  31. (7, 'Mage', 'Feu', 'Givre', 'Arcane', ''),
  32. (8, 'Moine', 'Maître Brasseur', 'Tisse Brûme', 'Marche Vent', ''),
  33. (9, 'Paladin', 'Protection', 'Sacré', 'Vindicte', ''),
  34. (10, 'Pretre', 'Ombre', 'Sacré', 'Discipline', ''),
  35. (11, 'Voleur', 'Finesse', 'Combat', 'Assassinat', '');
  36.  
  37. -- --------------------------------------------------------
  38.  
  39. --
  40. -- Structure de la table `recrut_besoin`
  41. --
  42.  
  43. CREATE TABLE IF NOT EXISTS `recrut_besoin` (
  44.   `id` int(11) NOT NULL AUTO_INCREMENT,
  45.   `ref` int(11) NOT NULL,
  46.   `classe` varchar(100) NOT NULL,
  47.   `besoin1` varchar(11) NOT NULL,
  48.   `besoin2` varchar(11) NOT NULL,
  49.   `besoin3` varchar(11) NOT NULL,
  50.   `besoin4` varchar(11) NOT NULL,
  51.   PRIMARY KEY (`id`),
  52.   KEY `ref` (`ref`)
  53. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
  54.  
  55. --
  56. -- Contenu de la table `recrut_besoin`
  57. --
  58.  
  59. INSERT INTO `recrut_besoin` (`id`, `ref`, `classe`, `besoin1`, `besoin2`, `besoin3`, `besoin4`) VALUES
  60. (1, 1, 'Chaman', 'fort', 'aucun', 'normal', ''),
  61. (2, 2, 'Chasseur', '', '', '', ''),
  62. (3, 3, 'Demoniste', '', '', '', ''),
  63. (4, 4, 'Dk', '', '', '', ''),
  64. (5, 5, 'Druide', '', '', '', ''),
  65. (6, 6, 'Guerrier', '', '', '', ''),
  66. (7, 7, 'Mage', '', '', '', ''),
  67. (8, 8, 'Moine', '', '', '', ''),
  68. (9, 9, 'Paladin', '', '', '', ''),
  69. (10, 10, 'Pretre', '', '', '', ''),
  70. (11, 11, 'Voleur', '', '', '', '');
  71.  
  72.  
  73. #####!!!#####
  74. ?>

J'ai repris les bases pour les tables du module d'avancée PVE de Gothi qui ressemblais un peu à ce dont j'ai besoin.

voici le code pour gestion.php

Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1.  
  2. <?php
  3. // ---------------------------------------------------------------
  4. // KwsPHP kOoGar Web System
  5. // $Id$
  6. // ---------------------------------------------------------------
  7. // Création : xx/xx/xx par xxx
  8. // ---------------------------------------------------------------
  9.  
  10. /* Ce module vide vous expliquera les différentes étapes de la création du module.
  11. Ici, ce n'est que la base,  la syntaxe basique si vous préferez. Ce zip sera expliqué petit à petit, afin que vous puissiez comprendre toutes les etapes. */
  12.  
  13. /*------------------------------------------
  14. LIEN POUR Y ACCEDER : index.php?mod=module_vide&ac=gestion
  15. --------------------------------------------*/
  16.  
  17. //Ligne de protection de votre module, cette ligne assure sa sécurité.
  18. if (!(defined('__KWS__'))) {die ('Erreur d\'appel de fichier.');}
  19.  
  20. if (is_module('module_vide'))
  21. {
  22. //On vérifie le grade (ici administrateur)
  23. //Pour laisser l'acces à un certain grade, remplacer 4 par le grade minimum (0 = membre lambda, 1= membre privilegié, 2=modérateur forum, 3=modérateur général, 4=administrateur)
  24. if (get_grade() >= GRD_ADMIN)
  25. {
  26.     if(!empty($_GET['action']) == 'update'){
  27.     
  28.         //if(!empty($_POST['update'])){
  29.         
  30.             $query3 = reqmysql('SELECT * FROM `recrut_besoin`');
  31.     
  32.             while($data3 = mysql_fetch_array($query3)){
  33.                 
  34.                          $op = 1;
  35.             
  36.                 for($op = 1;$op<5;$op++){
  37.             
  38.                     $post_value = 'besoin'.$op.'_'.$data3['classe'];            
  39.             
  40.             {
  41.             
  42.                 
  43.             
  44.                 reqmysql('UPDATE `recrut_besoin` SET `besoin'.$op.'` ="'.$_POST[besoin1].'"  WHERE `classe` = "'.$data3['ref'].'"');
  45.                 }
  46.         
  47.             }
  48.     
  49.     echo df_message('information','Les donn&eacute;es ont &eacute;t&eacute; mises &agrave; jour');
  50.     
  51.     header('location:index.php?mod='.$K_mod.'&ac=gestion');
  52.     
  53.     }
  54.     
  55.         $recrut .= '<div id="acordvert">';
  56.     
  57.     $query = reqmysql('SELECT * FROM `recrutement` ORDER BY `id` ASC');
  58.     
  59.         while($data = mysql_fetch_array($query)){
  60.     
  61.     $recrut .= '<form action="index.php?mod='.$K_mod.'&amp;ac=gestion&amp;action=update" method="post" name="recrut_besoin-form">';    
  62.     $recrut .= '<div id="info2"><span class="'.$data[classe].'">'.$data[classe].'</span>';
  63.     $recrut .= '<div align="center">';
  64.     
  65.             $query2 = reqmysql('SELECT * FROM `recrut_besoin` WHERE `id` = "'.$data['id'].'"');
  66.     
  67.         while($besoin = mysql_fetch_array($query2)){
  68.         
  69.     $recrut .= '<p style="font-size:10px;">'.$data[spe1].'<select name="besoin1" size="0">';
  70.     $recrut .= '<option value="">aucun</option>';
  71.     $recrut .= '<option value="">normal</option>';
  72.     $recrut .= '<option value="">fort</option>';
  73.     $recrut .= '</select></p>';
  74.     $recrut .= '<p style="font-size:10px;">'.$data[spe2].'<select name="besoin2" >';
  75.     $recrut .= '<option value="">aucun</option>';
  76.     $recrut .= '<option value="">normal</option>';
  77.     $recrut .= '<option value="">fort</option>';
  78.     $recrut .= '</select></p>';
  79.     $recrut .= '<p style="font-size:10px;">'.$data[spe3].'<select name="besoin3" >';
  80.     $recrut .= '<option value="">aucun</option>';
  81.     $recrut .= '<option value="">normal</option>';
  82.     $recrut .= '<option value="">fort</option>';
  83.     $recrut .= '</select></p>';
  84.     $recrut .= '<p style="font-size:10px;">'.$data[spe4].'<select name="besoin4" >';
  85.     $recrut .= '<option value="">aucun</option>';
  86.     $recrut .= '<option value="">normal</option>';
  87.     $recrut .= '<option value="">fort</option>';
  88.     $recrut .= '</select></p>';
  89.     $recrut .= '</div></div>'; 
  90.     }
  91. }
  92.  
  93.     $recrut .= '<div align="center"><br /><input type="submit" value="update" /><br /><br /></div></div> ';
  94.  
  95.     };
  96.     
  97.  
  98.     
  99.     //Ligne indiquant au thème de placer un bloc de titre $titre et de contenu $contenu
  100.     bloc($result_blocs->parametre1,$recrut);
  101.     
  102.     
  103. }
  104.  
  105.  
  106. ?>
  107.  


Avec ce code, quand j'update, il y a bien quelque chose que ce passe, ca reset la table, enfin tout ce que j'avais insérer manuellement disparait. Certes, je suis conscient que c'est la base l'update, mais la, je dois louper quelque chose et j'ignore ce que c'est.
Si vous avez une piste je suis preneur.

Je pense que l'erreur dois venir de


Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4.  
  5.  $op = 1;
  6.             
  7.                 for($op = 1;$op<5;$op++){
  8.  
  9.  
  10. #####!!!#####
  11. ?>

Mais je n'en suis pas sur


Sujet écrit par SpereD le lundi 11 février 2013 à 14:39

[ Imprimer ] - [ Fermer la fenêtre ]