IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Amélioration de mon script [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut Amélioration de mon script
    Bonsoir,
    Je recontre un soucis avec mon code php. Lorsque j'effectue un simple changement (par exemple 1 devient 2 et 2 devient 1 dans mon menus déroulant) le changement des données dans la bdd se passe très bien. par contre, si je fais 3 changements (1 devient 2 puis 3 devient 1) alors les changements dans la bdd ne correspondent pas aux choix.
    Merci par avance pour votre aide.
    Voici mes codes:

    1ère page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?php>// Connection au serveur + Sélection de la base de données.
    mysql_connect("localhost","root","");
    mysql_select_db("rfm");
     
    //Retour du nom de la table joueur(x) contenant l'équipe par rapport au pseudo du joueur connecté.
    $retinfo = mysql_query("SELECT tablejoueurs FROM info WHERE pseudo='$pseudo'")or die(mysql_error()); 
    while ($rettable = mysql_fetch_array($retinfo))
    {
    	$table = $rettable['tablejoueurs']; 
    }
    //Remise en ordre des numéros des joueurs.
    mysql_query("UPDATE $table SET numero='1'WHERE id='1'")or die(mysql_error());
    mysql_query("UPDATE $table SET numero='2'WHERE id='2'")or die(mysql_error());
    mysql_query("UPDATE $table SET numero='3'WHERE id='3'")or die(mysql_error());
     
     
    //Retour des infos propres à chaque joueur de l'équipe et mise en tableau des infos.
    	$query_Recordset1 = "SELECT place, nom, prenom, age FROM $table ORDER BY id ASC";
    	$Recordset1 = mysql_query($query_Recordset1) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);	
     
    mysql_close();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
     
    <style type="text/css">
    <!--
    #form1 table {
    	float: left;
    }
    -->
    </style>
    </head>
    <body>
    <!--mise en forme du tableau des menus déroulants.-->
    <form id="form1" name="form1" method="post" action="modif_placebis.php">
      <label>
    <table width="60" height="140" border="1">
      <tr>
        <th width="50" height="35" scope="col">numero</th>
      </tr>
      <tr>
        <td height="25"><select name="numero1" onchange="rang(0)">
    <option value="1"selected="selected">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select></td>
      </tr>
      <tr>
         <td height="25"><select name="numero2" onchange="rang(1)">
    <option value="1">1</option>
    <option value="2"selected="selected">2</option>
    <option value="3">3</option>
    </select></td>
      </tr>
      <tr>
        <td height="25"><select name="numero3" onchange="rang(2)">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3"selected="selected">3</option>
    </select></td>
      </tr>
    </table>
     
    <!--mise en forme du tableau des infos des joueurs.-->
    <table height="80" border="1">
      <tr>
        <th height="35">place</th>
        <th height="35">nom</th>
        <th height="35">prenom</th>
        <th height="35">age</th>
         </tr>
      <?php do { ?>
        <tr>
          <td height="25"><?php echo $row_Recordset1['place']; ?></td>
          <td><?php echo $row_Recordset1['nom']; ?></td>
          <td><?php echo $row_Recordset1['prenom']; ?></td>
          <td><?php echo $row_Recordset1['age']; ?></td>
        </tr>
        <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
    </table>
    <input type="submit"  value="Valider" />
      </label>
    </form>
    </body>
    </html>
    <!--Code Javascript pour les menus déroulants.-->
    <script type="text/javascript">
    var sel; // Variable pour récupérer tous les <select>
    var valeurs = []; // Tableau pour garder en mémoire les valeurs
    function rang(nb) { // En paramètre l'indice du <select>
    	var val = sel[nb].value; // On garde dans "val" la valeur du <select> modifié
    	for(var i=0,l=sel.length;i<l;i++) { // On parcourt la totalité des <select>
    		if((i!=nb) && (sel[i].value == val)) { // Si ce n'est pas le <select> modifié et que la valeur correspond
    			sel[i].value = valeurs[nb]; // On lui applique l'ancienne valeur de <select> modifié
    			valeurs[i] = valeurs[nb]; // Et on enregistre le changement dans le tableau des valeurs
    		}
    	}
    	valeurs[nb] = val; // On enregistre également le changement du <select> modifié
    }
    window.onload=function() { // Au chargement (initialisation)
    	sel = document.getElementsByTagName("select"); // On récupère tous les éléments <select> dans "sel"
    	for(var i=0,l=sel.length;i<l;i++) { // On parcourt tout
    		valeurs.push(sel[i].value); // Et on sauvegarde les valeurs dans le tableau "valeurs".
    	}
    }
    </script>
    Et voici ma 2ème page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <?php>//Connection au serveur + Sélection de la base de données.
    mysql_connect("localhost","root","");
    mysql_select_db("rfm");
     
    //Retour du nom de la table joueur(x) contenant l'équipe par rapport au pseudo du joueur connecté.
    $retinfo = mysql_query("SELECT tablejoueurs FROM info WHERE pseudo='$pseudo'")or die(mysql_error()); 
    while ($rettable = mysql_fetch_array($retinfo))
    {
    	$table = $rettable['tablejoueurs']; 
    }
    //Retour des variables des formulaires.
    $numero1=$_POST['numero1'];
    $numero2=$_POST['numero2'];
    $numero3=$_POST['numero3'];
     
     
     
     //Lecture des données des joueurs en fonction de leur classement.
    $retourbddj1 = mysql_query("SELECT place, nom, prenom, age FROM $table WHERE id=1")or die(mysql_error()); 
    while ($donnees = mysql_fetch_array($retourbddj1))
    {
    	$place1 = $donnees['place'];
    	$nom1 = $donnees['nom'];
    	$prenom1 = $donnees['prenom'];
    	$age1 = $donnees['age'];
    }
    $retourbddj2 = mysql_query("SELECT place, nom, prenom, age FROM $table WHERE id=2")or die(mysql_error()); 
    while ($donnees = mysql_fetch_array($retourbddj2))
    {
    	$place2 = $donnees['place'];
    	$nom2 = $donnees['nom'];
    	$prenom2 = $donnees['prenom'];
    	$age2 = $donnees['age'];
    	}
    $retourbddj3 = mysql_query("SELECT place, nom, prenom, age FROM $table WHERE id=3")or die(mysql_error()); 
    while ($donnees = mysql_fetch_array($retourbddj3))
    {
    	$place3 = $donnees['place'];
    	$nom3 = $donnees['nom'];
    	$prenom3 = $donnees['prenom'];
    	$age3 = $donnees['age'];
    }
     
    //Modification du numero des joueurs dans la base de donnée en fonction des choix de l'utilisateur.
    mysql_query("UPDATE $table SET numero='$numero1'WHERE id='1'")or die(mysql_error());
    mysql_query("UPDATE $table SET numero='$numero2'WHERE id='2'")or die(mysql_error());
    mysql_query("UPDATE $table SET numero='$numero3'WHERE id='3'")or die(mysql_error());
     
    //Déplacement des attributs propres des joueurs sélectionnés à leur nouvel emplacement.
    mysql_query("UPDATE $table SET place='$place1',nom='$nom1',prenom='$prenom1', age='$age1'WHERE numero='1'")or die(mysql_error());
    mysql_query("UPDATE $table SET place='$place2',nom='$nom2',prenom='$prenom2', age='$age2'WHERE numero='2'")or die(mysql_error());
    mysql_query("UPDATE $table SET place='$place3',nom='$nom3',prenom='$prenom3', age='$age3'WHERE numero='3'")or die(mysql_error());
     
    mysql_close();
     
    //header("location:gest_equipebis.php");
    ?>

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    si je fais 3 changements (1 devient 2 puis 3 devient 1)
    Ca fait que 2 changements ça, et ça donne :

    1 --> 2
    2 --> 2
    3 --> 1

    Donc forcément, ça risque pas de faire ce que tu veux ^^

    Si c'était juste une faute à la rédaction de ton post, je te dirais de vérifier les valeurs que tu as dans ta DB à cette étape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //Modification du numero des joueurs dans la base de donnée en fonction des choix de l'utilisateur.
    mysql_query("UPDATE $table SET numero='$numero1'WHERE id='1'")or die(mysql_error());
    mysql_query("UPDATE $table SET numero='$numero2'WHERE id='2'")or die(mysql_error());
    mysql_query("UPDATE $table SET numero='$numero3'WHERE id='3'")or die(mysql_error());
     
    // rajoute un die(); ici
    // die();

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    Ca fait que 2 changements ça, et ça donne :

    1 --> 2
    2 --> 2
    3 --> 1

    Donc forcément, ça risque pas de faire ce que tu veux ^^

    Si c'était juste une faute à la rédaction de ton post, je te dirais de vérifier les valeurs que tu as dans ta DB à cette étape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //Modification du numero des joueurs dans la base de donnée en fonction des choix de l'utilisateur.
    mysql_query("UPDATE $table SET numero='$numero1'WHERE id='1'")or die(mysql_error());
    mysql_query("UPDATE $table SET numero='$numero2'WHERE id='2'")or die(mysql_error());
    mysql_query("UPDATE $table SET numero='$numero3'WHERE id='3'")or die(mysql_error());
     
    // rajoute un die(); ici
    // die();
    Non, je me suis mal exprimé. Je fais 2 inversions qui provoquent 3 changements de place.
    1-->2-->2
    2-->1-->3
    3-->3-->1
    Pour ce qui est des valeurs dans la BDD, les numéros sont bons, mais les "attributs" des joueurs ne sont pas au bon endroit.

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    hmm j'ai vachement du mal à comprendre ton code...

    si on réfléchi un peu :
    - ID est surement la PRIMARY KEY en auto_increment et donc ne doit pas être modifiée
    - les informations personnelles du joueur sont pas censée être modifiée
    - informations de jeu (le numéro du maillot par exemple) peuvent être modifiées

    pourquoi alors, tu ne change pas seulement le champ "numero" pour un joueur donné ?

    je me trompe peut-être, mais à mon avis, tu te casses trop la tête

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    hmm j'ai vachement du mal à comprendre ton code...

    si on réfléchi un peu :
    - ID est surement la PRIMARY KEY en auto_increment et donc ne doit pas être modifiée
    - les informations personnelles du joueur sont pas censée être modifiée
    - informations de jeu (le numéro du maillot par exemple) peuvent être modifiées

    pourquoi alors, tu ne change pas seulement le champ "numero" pour un joueur donné ?

    je me trompe peut-être, mais à mon avis, tu te casses trop la tête
    En effet, l'id est ma primary key, le numéro est le numéro du maillot du joueur. La constitution de l'équipe se fait dans l'ordre 1-2-3-4 etc...
    C'est pourquoi quand tu veux inverser des joueurs, tu utilises le menu déroulant en javascript pour voir en temps réel ce que tu fais, et lorsque tu "valides", les joueurs doivent être à la bonne place(avec leurs bonnes informations(nom, prénom, ages, etc...). avec mon script, si tu fais une inversion, tout se passe très bien, mais si tu changes 2 fois un même joueur de place, ça ne marche plus.
    Ce que je souhaite faire c'est ça:

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    est-ce que ceci pourrait te convenir ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <?php
    // Connection au serveur + Sélection de la base de données.
    mysql_connect("localhost","root","");
    mysql_select_db("rfm");
     
    if (isset($_GET['pseudo']) && !empty($_GET['pseudo'])) { 
    	//Retour du nom de la table joueur(x) contenant l'équipe par rapport au pseudo du joueur connecté.
    	$retinfo = mysql_query("SELECT tablejoueurs FROM info WHERE pseudo='".$_GET['pseudo']."'")or die(mysql_error()); 
    	while ($rettable = mysql_fetch_array($retinfo))
    	{
    		$table = $rettable['tablejoueurs']; 
    	}
    } else {
    	$table = "tablejoueurs"; // table par defaut
    }
     
    // MISE A JOUR
    if (isset($_POST) && count($_POST['numero']) > 0) {
    	$error = false;
    	foreach($_POST['numero'] AS $id_joueur => $new_numero) {
    		if (empty($new_numero)) {
    			$error = true;
    		}
    		$requetes[] = $sql = "UPDATE $table SET numero = '".$new_numero."' WHERE id = '".$id_joueur."'";
    	}
    	// Ici, il faudrait en plus vérifier qu'on a bien que des 'new_numero' différents
    	if (!$error) {
    		foreach($requetes AS $request) {
    			mysql_query($request);
    		}
    	}
    }
     
    //Retour des infos propres à chaque joueur de l'équipe et mise en tableau des infos.
    $query_Recordset1 = "SELECT *, DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age FROM $table ORDER BY numero ASC";
    $Recordset1 = mysql_query($query_Recordset1) or die(mysql_error());
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);	
     
    mysql_close();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
     
    <style type="text/css">
    <!--
    #form1 table {
    	float: left;
    }
    -->
    </style>
    </head>
    <body>
    <!--mise en forme du tableau des menus déroulants.-->
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="myForm">
    <table>
      <tr>
        <th>Nom</th>
        <th>Prénom</th>
        <th>Age</th>
        <th>Numéro</th>
        <th>Place</th>
      </tr>
      <?php
      while ($r = mysql_fetch_assoc($Recordset1)) {
    	echo '<tr>
    			<td>'.$r['nom'].'</td>
    			<td>'.$r['prenom'].'</td>
    			<td>'.$r['age'].' ans</td>
    			<td>';
    	echo '<select name="numero['.$r['id'].']" onchange="updateNum(this.selectedIndex);">';
    	echo '<option value=""></option>';
    	for ($i = 1; $i <= 30; $i++) {
    		$num = sprintf("%02d", $i);
    		echo '<option value="'.$i.'"';
    		if ($i == $r['numero']) { echo ' selected="selected"'; }
    		echo '>'.$num.'</option>';
    	}
    	echo '</select>';
    	echo '</td>
    			<td>'.$r['place'].'</td>
    		  </tr>';
      }
      ?>
    	<tr>
    		<td colspan="5" style="text-align:center;"><input type="submit"  value="Valider" /></td>
    	</tr>
    </table>
    </form>
    <script type="text/javascript">
    function updateNum(selectedNum) {
    	var myForm = document.forms['myForm'];
    	var count = 0;
    	for (var i = 0; i < myForm.elements.length; i++) {
    		if (myForm.elements[i].type == "select-one" && myForm.elements[i].selectedIndex == selectedNum) {
    			count++;
    			if (count > 1) {
    				myForm.elements[i].selectedIndex = 0;
    			}
    		}
    	}
    }
    </script>
    </body>
    </html>

    DB :
    CREATE TABLE `tablejoueurs` (
    `id` int(11) NOT NULL auto_increment,
    `place` enum('AILIER','DEFENSEUR','AVANT-CENTRE','GARDIEN') NOT NULL,
    `nom` varchar(255) NOT NULL,
    `prenom` varchar(255) NOT NULL,
    `birthday` date NOT NULL,
    `numero` int(11) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

    --
    -- Contenu de la table `tablejoueurs`
    --

    INSERT INTO `tablejoueurs` (`id`, `place`, `nom`, `prenom`, `birthday`, `numero`) VALUES
    (1, 'AILIER', 'Toto', 'Ronaldo', '1979-07-05', 1),
    (2, 'DEFENSEUR', 'baggio', 'roberto', '1949-05-30', 10),
    (3, 'GARDIEN', 'Un nom connu', 'Un prénom connu ^^', '1984-02-22', 3);

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Merci pour ton code, mais je n'arrive pas a créer la bdd au niveau de ENUM, il me donne un message d'erreur alors que je rentre tout comme demandé.
    De plus, est-ce que ton script conserve la mise en page comme dans l'exemple que je t'ai donné? (avec menus déroulant pour effectuer les inversions de joueurs)

  8. #8
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Citation Envoyé par lumycaan Voir le message
    Merci pour ton code, mais je n'arrive pas a créer la bdd au niveau de ENUM, il me donne un message d'erreur alors que je rentre tout comme demandé.
    De plus, est-ce que ton script conserve la mise en page comme dans l'exemple que je t'ai donné? (avec menus déroulant pour effectuer les inversions de joueurs)
    hmmm si t'as un soucis, vire le ENUM et met un varchar(255) ^^

    pour ce qui est du menu déroulant, tu peux le voir dans le code plus haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo '<select name="numero['.$r['id'].']" onchange="updateNum(this.selectedIndex);">';
    	echo '<option value=""></option>';
    	for ($i = 1; $i <= 30; $i++) {
    		$num = sprintf("%02d", $i);
    		echo '<option value="'.$i.'"';
    		if ($i == $r['numero']) { echo ' selected="selected"'; }
    		echo '>'.$num.'</option>';
    	}
    	echo '</select>';

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Bon, bah voilà, j'ai réussi a créer la table. Par contre, le script ne me donne pas ce que je souhaite. Il n'y a ni changement de joueur, ni inversion du numéro.
    Essaie de voir sur le lien que je t'ai donné comment la place des joueurs évolue lorsque tu fais tout simplement une inversion de numéro à gauche et que tu envois
    En tout cas, merci de ton aide.

  10. #10
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Citation Envoyé par lumycaan Voir le message
    Bon, bah voilà, j'ai réussi a créer la table. Par contre, le script ne me donne pas ce que je souhaite. Il n'y a ni changement de joueur, ni inversion du numéro.
    C'est un code d'exemple, il ne suffit pas de faire un copier/coller... je n'ai ni ta DB, ni toutes TES idées en tête
    De plus, je me suis pas occupé de faire des return des erreurs, mais si un seul des SELECT est vide, alors rien ne se passe...

    Essaie de voir sur le lien que je t'ai donné comment la place des joueurs évolue lorsque tu fais tout simplement une inversion de numéro à gauche et que tu envois
    En tout cas, merci de ton aide.
    j'veux bien aider, mais si y'a bien un truc qui me rend fou sur le net, c'est de devoir créer des comptes pour la moindre petite chose... en faire un juste pour ça... c'est trop pour moi... dans mon code tout fonctionne correctement. Si vraiment dans l'extrême limite j'ai un problème de compréhension j'irai, mais pas avant

    Fonctionnement :
    PHP : y'a des commentaires pour les vérif cotés PHP, y'a qu'à lire...

    HTML / JS :
    quand tu sélectionne un numéro de joueur, tu lui attribues ce numéro. Si ce numéro était déjà attribué à quelqu'un, le numéro de l'ancien jouer repasse à une valeur vide. En validant le formulaire sans attribuer de nouveau numéro à l'ancien joueur, aucune modification ne sera apportée. Peut-être souhaiterais-tu que leurs numéros s'échangent ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 139
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    C'est un code d'exemple, il ne suffit pas de faire un copier/coller... je n'ai ni ta DB, ni toutes TES idées en tête
    De plus, je me suis pas occupé de faire des return des erreurs, mais si un seul des SELECT est vide, alors rien ne se passe...



    j'veux bien aider, mais si y'a bien un truc qui me rend fou sur le net, c'est de devoir créer des comptes pour la moindre petite chose... en faire un juste pour ça... c'est trop pour moi... dans mon code tout fonctionne correctement. Si vraiment dans l'extrême limite j'ai un problème de compréhension j'irai, mais pas avant

    Fonctionnement :
    PHP : y'a des commentaires pour les vérif cotés PHP, y'a qu'à lire...

    HTML / JS :
    quand tu sélectionne un numéro de joueur, tu lui attribues ce numéro. Si ce numéro était déjà attribué à quelqu'un, le numéro de l'ancien jouer repasse à une valeur vide. En validant le formulaire sans attribuer de nouveau numéro à l'ancien joueur, aucune modification ne sera apportée. Peut-être souhaiterais-tu que leurs numéros s'échangent ?
    Ok, pas de soucis, je vais reprendre tout ça à tête reposée car là, j'explose!
    Merci de ton aide.

  12. #12
    Membre émérite
    Avatar de Nothus
    Homme Profil pro
    aucun
    Inscrit en
    Juillet 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : aucun
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 200
    Points : 2 427
    Points
    2 427
    Billets dans le blog
    27
    Par défaut
    Je ne sais pas si j'ai tout compris, mais ce système me semble bien compliqué ^^

    Pourquoi ne pas différencier ce qui tient véritablement du joueur (en gros un profil) de son équipe (en gros un groupe) ?

    Exemple :

    Table "Joueurs"
    ID_SPORTIF (primary key)
    NOM (text)
    DESCRITIF (text)

    TABLE "Equipes"
    ID_EQUIPE (primary key)
    NOM (text)
    DESCRIPTIF (text)
    ID_JOUEUR1 (int)
    ID_JOUEUR2 (int)
    ID_JOUEUR3 (int)

    ... Lorsque tu as besoins de faire une modification, tu changes simplement l'identifiant du sportif au joueur qui va bien, à la place qui va bien...

    UPDATE Equipes SET ID_JOUEUR1=

    Après, si la taille de l'équipe varie, ou pour plusieurs sports :

    Table "Joueurs"
    ID_SPORTIF (primary key)
    NOM (text)
    DESCRITIF (text)

    TABLE "Equipes"
    ID_EQUIPE (primary key)
    NOM (text)
    DESCRIPTIF (text)

    TABLE "Equipes_Composition"
    ID_EQUIPE (int)
    ID_SPORTIF (int)
    PLACE (int)

    Et une requête suffit telle que :

    SELECT Joueurs.NOM, Equipes_Composition.PLACE FROM Joueurs, Equipes, Equipes_Composition WHERE Equipes_Composition.ID_EQUIPE=" (l'identifiant de l'équipe voulue) " AND Joueurs.ID_JOUEUR=Equipes_Composition.ID_JOUEUR ORDER BY PLACE;

    Qu'en pensez-vous ?

  13. #13
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Citation Envoyé par Nothus Voir le message
    Je ne sais pas si j'ai tout compris, mais ce système me semble bien compliqué ^^

    Pourquoi ne pas différencier ce qui tient véritablement du joueur (en gros un profil) de son équipe (en gros un groupe) ?

    Exemple :

    Table "Joueurs"
    ID_SPORTIF (primary key)
    NOM (text)
    DESCRITIF (text)

    TABLE "Equipes"
    ID_EQUIPE (primary key)
    NOM (text)
    DESCRIPTIF (text)
    ID_JOUEUR1 (int)
    ID_JOUEUR2 (int)
    ID_JOUEUR3 (int)

    ... Lorsque tu as besoins de faire une modification, tu changes simplement l'identifiant du sportif au joueur qui va bien, à la place qui va bien...

    UPDATE Equipes SET ID_JOUEUR1=

    Après, si la taille de l'équipe varie, ou pour plusieurs sports :

    Table "Joueurs"
    ID_SPORTIF (primary key)
    NOM (text)
    DESCRITIF (text)

    TABLE "Equipes"
    ID_EQUIPE (primary key)
    NOM (text)
    DESCRIPTIF (text)

    TABLE "Equipes_Composition"
    ID_EQUIPE (int)
    ID_SPORTIF (int)
    PLACE (int)

    Et une requête suffit telle que :

    SELECT Joueurs.NOM, Equipes_Composition.PLACE FROM Joueurs, Equipes, Equipes_Composition WHERE Equipes_Composition.ID_EQUIPE=" (l'identifiant de l'équipe voulue) " AND Joueurs.ID_JOUEUR=Equipes_Composition.ID_JOUEUR ORDER BY PLACE;

    Qu'en pensez-vous ?
    Je suis assez pour (bien que ce ne soit pas là sont réel problème :p) mais si on consièdre qu'un joueur ne peut pas appartenir à 2 équipes (normalement) son chiffre ainsi que sa place lui sont attribués par rapport à son équipe courrante. Nous n'avons donc pas besoin de 3 tables...
    Bien entendu, si on souhaite garder un historique des numéros/placements (ce qui serait évidemment bcp mieux) alors effectivement, 3 tables semblent être la meilleure chose à faire ^^

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    Je pense que ce poste vous aide un peu:
    http://www.developpez.net/forums/d67...colonne-table/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] améliorer mon script
    Par ignem18 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 13/06/2014, 18h13
  2. amélioration de mon script
    Par Mika2008 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 15/06/2011, 09h52
  3. [langage]erreur dans mon script
    Par Fabouney dans le forum Langage
    Réponses: 11
    Dernier message: 30/06/2005, 14h58
  4. Tcsh - Mon script ne marche pas
    Par Aramis dans le forum Linux
    Réponses: 5
    Dernier message: 13/05/2004, 18h26
  5. Mon script cron n'est pas pris en compte
    Par tomnie dans le forum Linux
    Réponses: 11
    Dernier message: 31/03/2004, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo