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

Langage PHP Discussion :

Requête SQL + Boutons génériques [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut Requête SQL + Boutons génériques
    Bonjour,

    je suis sur un projet de pronostics

    Sur ma page, j'arrive à récupérer ma liste de matchs (table matchs) et à générer des listes près de chaque équipe (score 0 à 10).
    Chaque liste est identifiée par le user, l'id du match et le score de chaque équipe. Pour ça ça va à peu près.

    J'ai aussi mis un bouton pour valider le score et ainsi transmettre à la base de données mais je n'y arrive pas.

    Ci dessous le code:*

    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
    <?php
    include('config.php')
    ?>
    <!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" />
            <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
            <title>Espace membre</title>
        </head>
        <body>
        	<div class="header">
            	<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
    	    </div>
            <div class="content">
    <?php
    //On affiche un message de bienvenue, si lutilisateur est connecte, on affiche son pseudo
    ?>
    Bonjour<?php if(isset($_SESSION['username'])){echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} ?>,<br />
    Bienvenue sur notre site.<br />
    Vous pouvez <a href="users.php">voir la liste des utilisateurs</a>.<br /><br/>
    <?php
    //Si lutilisateur est connecte, on lui donne un lien pour modifier ses informations, pour voir ses messages et un pour se deconnecter
    if(isset($_SESSION['username']))
    {
    ?>
    <a href="edit_infos.php">Modifier mes informations personnelles</a><br />
    <a href="connexion.php">Se d&eacute;connecter</a><br/><br><br/>
    <?php 
    $sql = "SELECT id,eq1,eq2,date, DATE_FORMAT(date,'%d/%m/%Y %H:%i') AS date2 FROM matchs";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $user= $_SESSION['username'];
    echo '<form action="index.php" method="post">';
    while($data = mysql_fetch_assoc($req))
        {
    	// on affiche les informations de l'enregistrement en cours
    	echo ''.$data['date2'].' '; 
    	echo ''.$data['eq1'].' ';
     
    	// Variable qui ajoutera l'attribut selected de la liste déroulante
    	$selected = '';
    	$selected2 = '';
     
    	// Parcours du tableau
    	echo '<select name="'.$user.'.'.$data['id'].'.1">',"\n";
    	for($i=0; $i<=10; $i++)
    	{
    	// Affichage de la ligne
    	echo "\t",'<option value="', $i ,'"', $selected ,'>', $i ,'</option>',"\n";
    	// Remise à zéro de $selected
    	$selected='';
    	}
    	echo '<select name="'.$user.'.'.$data['id'].'.1">',"\n";
     
    	echo ''.$data['eq2'].' ';
    	echo '<select name="'.$user.'.'.$data['id'].'.2">',"\n";
    	for($j=0; $j<=10; $j++)
    	{
    	// Affichage de la ligne
    	echo "\t",'<option value="', $j ,'"', $selected2 ,'>', $j ,'</option>',"\n";
    	// Remise à zéro de $selected
    	$selected2='';
    	}
    	echo '<select name="'.$user.'.'.$data['id'].'">',"\n";
    	echo '<input name="btn_'.$user.'.'.$data['id'].'" type="submit" value="OK"">';
     
    	if (isset ($_POST['btn_'.$user.'.'.$data['id'].'']))
    	{
    		$req2 = mysql_query("INSERT INTO `matchs` (`id`,`eq1`, `eq2`, `groupe`, `date`,`score_eq1`,`score_eq2`) VALUES ('1','POLOGNE', 'GRECE','GROUPE A', '2012-06-08 18:00:00', '', '')");
     
    	} 
    	echo '<br></br>';
     
        }   
    echo '</form>';
     
    // on ferme la connexion à mysql
    //mysql_close(); 
    ?> 
     
     
    <?php
    }
    else
    {
    //Sinon, on lui donne un lien pour sinscrire et un autre pour se connecter
    ?>
    <a href="sign_up.php">Inscription</a><br />
    <a href="connexion.php">Se connecter</a>
    <?php
    }
    ?>
    		</div>
    		<div class="foot"><a href="http://www.supportduweb.com/">Support du Web</a></div>
    	</body>
    </html>
    Je ne sais plus comment continuer. Le problème est à la fin du script.

    Si vous pouvez m'aider !!!!

    Merci

  2. #2
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Le formulaire se déclare avant la boucle et se ferme après la boucle...
    Ensuite, pour y insérer des paramètres caché, il te suffit au début de ta boucle, d'y inclure des input de type hidden

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    echo '<form action="index.php" method="post">';
    while($data = mysql_fetch_assoc($req)) {
    // input caché
    echo '<input type="hidden" name"toto" value="tata">';
     
    // Ensuite ton code
    }
    echo '</form>';
    ?>

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    Merci pour ta réponse rapide ! J'ai mis à jour mon script dans mon message précédent.

    Mais quand je clique sur mon bouton user.id.score1...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset ($_POST['btn_'.$user.'.'.$data['id'].'']))
    	{
    		$req2 = mysql_query("INSERT INTO `matchs` (`id`,`eq1`, `eq2`, `groupe`, `date`,`score_eq1`,`score_eq2`) VALUES ('1','POLOGNE', 'GRECE','GROUPE A', '2012-06-08 18:00:00', '', '')");
     
    	}
    rien ne se passe ... Pas d'insertion dans la base

  4. #4
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Hummm... c'est pas comme ceci que l'on soumet un formulaire. Normalement, c'est :

    Code php : 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
    // On test si les paramètres sont bien définit
    if (isset($_POST["session"]) && isset($_POST["dataId"])) {
     
    	// On définit la variable
    	$resultat = trim($_POST["inputText"]);
     
    	// On vérifie l'input text
    	if (empty($resultat))
    		die("erreur, input vide");
     
    	// Ensuite, le code à effectuer si les conditions sont corrects...
     
    }
     
    // On établit le formulaire
    echo '<form method="post" action="index.php">';
     
    	while($data = mysql_fetch_assoc($req)) {
     
    		// input caché qui seront envoyé en $_POST
    		echo '<input type="hidden" name="session" value="'.$user.'">';
    		echo '<input type="hidden" name="dataId" value="'.$data["id"].'">';
     
    		echo '<input type="text" name="inputText">'; // Le name sera passé en $_POST
    		echo '<input type="submit" value="OK"">'; // Le bouton de validation de formulaire
     
    	}
     
    echo '</form>';

    Or là, dans ton code, il y a une série d'incompréhension...

    Il ne faut pas faire ton test dans ta boucle,
    les select qui ne sont pas refermé,
    tes name des select me semble bien compliqué,
    tu n'es pas obligé de mettre de name à ton bouton submit

    Et pour moi, je n'ai jamais vu ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "\t",'<option value="', $i ,'"', $selected ,'>', $i ,'</option>',"\n";

    Il me semble que ça remplace les points, mais tu utilise les deux, si c'est le cas, je te conseil d'utiliser les points...

    Autre chose.. Normalement, la session, tu n'as même pas besoin de la passer dans le formulaire, puisqu'elle est présente et est beaucoup plus sécurisé...

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    Malheureusement je n'y connais pas grand chose ! Je m'attaque à quelque chose de difficile...

    VOIR ICI

    Il faut bien identifier les boutons, les 2 listes déroulantes.
    Appuyer sur un bouton OK n'a pas la même action qu'un autres

    Le but est que quand je clique sur OK en bout de ligne on puisse remplir la base avec les 2 scores sélectionnés !

    Il faut bien donné un nom de variable aux listes déroulantes et aux boutons ??

    Si tu peux m'avancer un peu ?

    Merci de ton aide en tout cas !!

  6. #6
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Bon... ca n'a pas était facile (puisque je ne connais pas du tout ton code... et qu'il y a énormément d'erreur..) mais je pense que ce n'est pas trop mal...

    page index.php
    Code php : 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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    <?php
    include('config.php')
    ?>
    <!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" />
            <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
            <title>Espace membre</title>
        </head>
        <body>
        	<div class="header">
            	<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
    	    </div>
            <div class="content">
     
    			<?php
    			// On définit la variable qui contiendra le pseudo
    			if (isset($_SESSION["username"]))
    				$pseudo = $_SESSION["username"];
    			else 
    				$pseudo = "";
     
    			// On définit la fonction de l'affichage du message de bienvenue pour éviter la répétition
    			function bienvenue($nom = "") {
    				// On vérifie le paramètre nom
    				if ($nom != "") 
    					$p = " ".$nom;
    				else 
    					$p = "";
     
    				echo "Bonjour".$p.",<br />";
    				echo "Bienvenue sur notre site.<br />";
    				echo "Vous pouvez <a href=\"users.php\">voir la liste des utilisateurs</a>";
    				echo "<br /><br />";	
    			}
     
    			// Si l'utilisateur est connecté
    			if ($pseudo) {	
     
    				//On affiche le message de bienvenue
    				bienvenue($pseudo);	
    				echo "<a href=\"edit_infos.php\">Modifier mes informations personnelles</a><br />";
    				echo "<a href=\"connexion.php\">Se déconnecter</a>";
    				echo "<br /><br /><br />";
     
    				/**********************************************************************
    				// Il faut ouvrir la connexion à la base de donnée si ce n'est pas fait
    				************************************************************************/
     
    				// On vérifie si il y a des données en $_POST, si oui, on exécute le code
    				if (isset($_POST["validation"]) && $_POST["validation"] == "ok") {
     
    					// On récupère dans une variable l'id du match
    					$idMatch = intval($_POST["idMatch"]);
     
    					// On récupère le noms des équipes
    					$eq1 = trim($_POST["nomEq1"]);
    					$eq2 = trim($_POST["nomEq2"]);
     
    					// On récupère dans des variables les scores sélectionné
    					$score1 = intval($_POST["scoreEq1"]);
    					$score2 = intval($_POST["scoreEq2"]);
     
    					// On fais la vérification des variables
    					if (!is_numeric($idMatch) || !is_numeric($score1) || !is_numeric($score2))
    						die("Erreur lors de la récupération des ID");
     
    					// On vérifie le nom de l'équipe en vérifiant dans la BDD
    					$sql = mysql_query("
    						SELECT 
    							eq1, eq2 
    						FROM 
    							`matchs` 
    						WHERE 
    							id = '".mysql_real_escape_string($id)."'
    							AND eq1 = '".mysql_real_escape_string($eq1)."'
    							AND eq2 = '".mysql_real_escape_string($eq2)."'
    					") or die (mysql_error());
     
    					if (mysql_num_rows($sql) == 0)
    						die("Il n'existe aucun match avec ses deux équipe");
     
    					else {
     
    						mysql_query("
    							UPDATE 
    								`matchs` 
    							SET 
    								score_eq1 = '".mysql_real_escape_string($score1)."', 
    								score_eq2 = '".mysql_real_escape_string($score2)."' 
    							WHERE 
    								eq1 = '".mysql_real_escape_string($eq1)."'
    								AND eq2 = '".mysql_real_escape_string($eq2)."'
    						") or die (mysql_error());
    						header("Location: index.php");
    						die();
     
    					}
     
    				}
     
    				// On met en place notre requête
    				$sql = mysql_query("SELECT id, eq1, eq2, date, DATE_FORMAT(date,'%d/%m/%Y %H:%i') AS date2 FROM matchs") or die (mysql_error());
     
    				// On vérifie si il y a un résultat
    				if (mysql_num_rows($sql) > 0) {
     
    					// On ouvre le formulaire
    					echo '<form action="index.php" method="post">';
    						// On définit l'input caché qui nous permettra de valider le formulaire
    						echo "<input type=\"hidden\" name=\"validation\" value=\"ok\">";
     
    						while($data = mysql_fetch_assoc($sql)) {
     
    							// On définit l'input caché qui contiendra l'id du match
    							echo "<input type=\"hidden\" name=\"idMatch\" value=\"".$data["id"]."\">";
    							// On récupère en POST le nom de l'équipe 1
    							echo "<input type=\"hidden\" name=\"nomEq1\" value=\"".$data["eq1"]."\">";
    							// On récupère en POST le nom de l'équipe 2
    							echo "<input type=\"hidden\" name=\"nomEq2\" value=\"".$data["eq2"]."\">";
     
    							// on affiche la date du match
    							echo $data['date2'].' ';
     
    							// On affiche l'équipe 1
    							echo $data['eq1'].' ';
     
    							// On affiche la sélection du score pour l'équipe 1
    							echo '<select name="scoreEq1">\n';
    								for($i = 0; $i <= 10; $i++)
    									echo '<option value="'. $i .'">'. $i .'</option>\n';
    							echo '</select>\n';
     
    							// On affiche l'équipe 2
    							echo $data['eq2']."\n";
     
    							// On affiche la sélection pour l'équipe 2
    							echo '<select name="scoreEq2">\n';
    								for($j = 0; $j <= 10; $j++) 
    									echo '<option value="'. $j .'">'. $j .'</option>\n';
    							echo '</select>';
     
    							echo '<input type="submit" value="OK">\n';
     
    							echo "<br /><br />";
     
    						}   
    					echo '</form>';
     
    					// on ferme la connexion à mysql
    					mysql_close();
     
    				// Si il n'y a pas d'enregistrement ...
    				} else
    					// Message indiquant qu'il n'y a pas de résultat
     
    			} else {
     
    				//On affiche le message de bienvenue
    				bienvenue();	
    				echo "<a href=\"sign_up.php\">Inscription</a><br />";
    				echo "<a href=\"connexion.php\">Se connecter</a>";
     
    			}
    			?>
    		</div>
    		<div class="foot"><a href="http://www.supportduweb.com/">Support du Web</a></div>
    	</body>
    </html>

    Le mieux, c'est que tu essaye ceci, que tu l'étudie, et si tu as des questions pour savoir pourquoi ceci ou cela, n'hésite pas !
    J'ai essayé de commenter au maximum mais bon... A voir !

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    Tu es une génie... En si peu de temps !

    Cependant, il semble y a voir un souci de } ligne 158

  8. #8
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    normal, à la ligne 152 regarde :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    } else
    					// Message indiquant qu'il n'y a pas de résultat

    Remplace le commentaire par le message d'erreur désiré

    exemple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    } else
    					echo "oops, il n'y a aucun résultat...";

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    Ok c'est mieux... Il y a encore des /n qui s'affiche après chaque bouton et la première liste déroulante, mais je trouverais d'où ça vient.

    La syntaxe correcte est et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="submit" value="OK">',"\n";

    Sinon, je ne comprend pas comment je peux définir ma requête liée aux boutons.

    Pour afficher les équipes et la date, on a fait une première requête OK !

    Mais maintenant j'aimerais envoyer les résultats sélectionnés via les listes sur une autre table que 'matchs'

    Par exemple, une table 'prono', où l'on retrouverait le user ou son 'id' (table users), l'id du match et ses scores.

    La table matchs est en réalité le calendrier des matchs. Ne doit pas être modifié par cette page.

    Seule la table prono doit l'être.

    Merci de ton aide !
    Je ne sais pas comment te remercier !

    Je vais me plonger dans ton code. Histoire d'apprendre !

    Merci de ta réponse

  10. #10
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Pour les \n à voir.. n'ayant ni visuel, ni code source... difficile de dire comme ça... Regarde ceux après les options, mais bon.. normalement, ca ne devrait pas gêner..

    Pour envoyer les données sur une autre table, il te suffit de modifier la requête à la ligne 83... ou d'en ajouter une !

    Là, je fais une mise à jour, mais tu peux faire une insertion dans une autre table..

    A savoir, pour la date et l'heure, tu utilisera simplement le résultat de
    et pour l'utilisateur, tu utilise la variable $pseudo qui contiens la session username...

    En ce qui concerne l'id, si c'est auto incrémenté, pas besoin de le définir...

    Exemple:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    mysql_query("
    							INSERT INTO 
    								`prono` (eq1, eq2, score_eq1, score_eq2, date, membre) 
    							VALUES ( 
    								'".mysql_real_escape_string($eq1)."',
    								'".mysql_real_escape_string($eq2)."',
    								'".mysql_real_escape_string($score1)."',
    								'".mysql_real_escape_string($score2)."',
    								now(),
    								'".mysql_real_escape_string($pseudo)."'
    							)
    						") or die (mysql_error());


    Pas de quoi, et n'hésite pas à participer au système de vote sur les messages en mettant +1 si la réponse est ce que tu attends ou -1 si elle ne répond pas à tes attentes :p

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    Il me renvoie que "Il n'existe aucun match avec ses deux équipes"

    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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    <?php
    include('config.php')
    ?>
    <!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" />
            <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
            <title>Espace membre</title>
        </head>
        <body>
        	<div class="header">
            	<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
    	    </div>
            <div class="content">
     
    			<?php
    			// On définit la variable qui contiendra le pseudo
    			if (isset($_SESSION["username"]))
    				$pseudo = $_SESSION["username"];
    			else 
    				$pseudo = "";
     
    			// On définit la fonction de l'affichage du message de bienvenue pour éviter la répétition
    			function bienvenue($nom = "") {
    				// On vérifie le paramètre nom
    				if ($nom != "") 
    					$p = " ".$nom;
    				else 
    					$p = "";
     
    				echo "Bonjour".$p.",<br />";
    				echo "Bienvenue sur notre site.<br />";
    				echo "Vous pouvez <a href=\"users.php\">voir la liste des utilisateurs</a>";
    				echo "<br /><br />";	
    			}
     
    			// Si l'utilisateur est connecté
    			if ($pseudo) {	
     
    				//On affiche le message de bienvenue
    				bienvenue($pseudo);	
    				echo "<a href=\"edit_infos.php\">Modifier mes informations personnelles</a><br />";
    				echo "<a href=\"connexion.php\">Se déconnecter</a>";
    				echo "<br /><br /><br />";
     
    				/**********************************************************************
    				// Il faut ouvrir la connexion à la base de donnée si ce n'est pas fait
    				************************************************************************/
     
    				// On vérifie si il y a des données en $_POST, si oui, on exécute le code
    				if (isset($_POST["validation"]) && $_POST["validation"] == "ok") {
     
    					// On récupère dans une variable l'id du match
    					$idMatch = intval($_POST["idMatch"]);
     
    					// On récupère le noms des équipes
    					$eq1 = trim($_POST["nomEq1"]);
    					$eq2 = trim($_POST["nomEq2"]);
     
    					// On récupère dans des variables les scores sélectionné
    					$score1 = intval($_POST["scoreEq1"]);
    					$score2 = intval($_POST["scoreEq2"]);
     
    					// On fais la vérification des variables
    					if (!is_numeric($idMatch) || !is_numeric($score1) || !is_numeric($score2))
    						die("Erreur lors de la récupération des ID");
     
    					// On vérifie le nom de l'équipe en vérifiant dans la BDD
    					$sql = mysql_query("
    						SELECT 
    							eq1, eq2 
    						FROM 
    							`matchs` 
    						WHERE 
    							id = '".mysql_real_escape_string($id)."'
    							AND eq1 = '".mysql_real_escape_string($eq1)."'
    							AND eq2 = '".mysql_real_escape_string($eq2)."'
    					") or die (mysql_error());
     
    					if (mysql_num_rows($sql) == 0)
    						die("Il n'existe aucun match avec ses deux équipes");
     
    					else {
     
    						mysql_query("
    							INSERT INTO 
    								`prono` (membre, eq1, eq2, idmatch, score_eq1, score_eq2, submit_date) 
    							VALUES ( 
    								'".mysql_real_escape_string($pseudo)."',
    								'".mysql_real_escape_string($eq1)."',
    								'".mysql_real_escape_string($eq2)."',
    								'".mysql_real_escape_string($idMatch)."',
    								'".mysql_real_escape_string($score1)."',
    								'".mysql_real_escape_string($score2)."',
    								now(),
    								
    							)
    						") or die (mysql_error());
     
    					}
     
    				}
     
    				// On met en place notre requête
    				$sql = mysql_query("SELECT id, eq1, eq2, date, DATE_FORMAT(date,'%d/%m/%Y %H:%i') AS date2 FROM matchs") or die (mysql_error());
     
    				// On vérifie si il y a un résultat
    				if (mysql_num_rows($sql) > 0) {
     
    					// On ouvre le formulaire
    					echo '<form action="index.php" method="post">';
    						// On définit l'input caché qui nous permettra de valider le formulaire
    						echo "<input type=\"hidden\" name=\"validation\" value=\"ok\">";
     
    						while($data = mysql_fetch_assoc($sql)) {
     
    							// On définit l'input caché qui contiendra l'id du match
    							echo "<input type=\"hidden\" name=\"idMatch\" value=\"".$data["id"]."\">";
    							// On récupère en POST le nom de l'équipe 1
    							echo "<input type=\"hidden\" name=\"nomEq1\" value=\"".$data["eq1"]."\">";
    							// On récupère en POST le nom de l'équipe 2
    							echo "<input type=\"hidden\" name=\"nomEq2\" value=\"".$data["eq2"]."\">";
     
    							// on affiche la date du match
    							echo $data['date2'].' ';
     
    							// On affiche l'équipe 1
    							echo $data['eq1'].' ';
     
    							// On affiche la sélection du score pour l'équipe 1
    							echo '<select name="scoreEq1">\n';
    								for($i = 0; $i <= 10; $i++)
    									echo '<option value="'. $i .'">'. $i .'</option>\n';
    							echo '</select>',"\n";
     
    							// On affiche l'équipe 2
    							echo $data['eq2']."\n";
     
    							// On affiche la sélection pour l'équipe 2
    							echo '<select name="scoreEq2">\n';
    								for($j = 0; $j <= 10; $j++) 
    									echo '<option value="'. $j .'">'. $j .'</option>\n';
    							echo '</select>';
     
    							echo '<input type="submit" value="OK">',"\n";
     
    							echo "<br /><br />";
     
    						}   
    					echo '</form>';
     
    					// on ferme la connexion à mysql
    					mysql_close();
     
    				// Si il n'y a pas d'enregistrement ...
    				} else
    					echo "oops, il n'y a aucun résultat..."; // Message indiquant qu'il n'y a pas de résultat
     
    			} else {
     
    				//On affiche le message de bienvenue
    				bienvenue();	
    				echo "<a href=\"sign_up.php\">Inscription</a><br />";
    				echo "<a href=\"connexion.php\">Se connecter</a>";
     
    			}
    			?>
    		</div>
    		<div class="foot"><a href="http://www.supportduweb.com/">Support du Web</a></div>
    	</body>
    </html>
    A savoir si il récupère bien les variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WHERE 
    							id = '".mysql_real_escape_string($id)."'
    							AND eq1 = '".mysql_real_escape_string($eq1)."'
    							AND eq2 = '".mysql_real_escape_string($eq2)."'
    Le problème viendrait de l'id. J'ai fait un echo des 3 variables et l'id ne s'affiche pas !

    C'est pas idMatch qu'il faut mettre à la place d'id ??

  12. #12
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    oups ^^

    remplace
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE 
    							id = '".mysql_real_escape_string($id)."'

    par
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE 
    							id = '".mysql_real_escape_string($idMatch)."'

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    J'avais vu ;-)

    Mais maintenant, il semble y avoir une erreur sql.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 12
    ici

    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
    else {
     
    						mysql_query("
    							INSERT INTO 
    								`prono` (membre, eq1, eq2, idmatch, score_eq1, score_eq2, submit_date) 
    							VALUES (
    								'".mysql_real_escape_string($pseudo)."',
    								'".mysql_real_escape_string($eq1)."',
    								'".mysql_real_escape_string($eq2)."',
    								'".mysql_real_escape_string($idMatch)."',
    								'".mysql_real_escape_string($score1)."',
    								'".mysql_real_escape_string($score2)."',
    								now(),
     
    							)
    						") or die (mysql_error());
     
    					}

  14. #14
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    copie/colle la ligne 11 et 12

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  15. #15
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Au début de ton fichier, tu inclus config.php, tu as oublié le ;

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    Le prblème est dans ma requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    mysql_query("
    							INSERT INTO 
    								`prono` (membre, eq1, eq2, idmatch, score_eq1, score_eq2, submit_date) 
    							VALUES (
    								'".mysql_real_escape_string($pseudo)."',
    								'".mysql_real_escape_string($eq1)."',
    								'".mysql_real_escape_string($eq2)."',
    								'".mysql_real_escape_string($idMatch)."',
    								'".mysql_real_escape_string($score1)."',
    								'".mysql_real_escape_string($score2)."',
    								now(),
     
    							)
    						") or die (mysql_error());
    Les variables sont bonnes pourtant ??

    Y'avait un , en trop dans ma requête !!

  17. #17
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    enlève la virgule après now()

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    Bon maintenant, l'INSERT fonctionne bien mais quelque soit le bouton sur lequel j'appuie, il m'enregistre toujours le dernier dernier match de la page dans la table prono !!

    Il y a encore un souci ;-)

  19. #19
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    dans ce cas, déplace le formulaire à l'intérieur de ta boucle, puisque ce sont des soumissions différentes...

    Code php : 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
    // On vérifie si il y a un résultat
    				if (mysql_num_rows($sql) > 0) {
     
    					while($data = mysql_fetch_assoc($sql)) {
     
    						// On ouvre le formulaire
    						echo '<form action="index.php" method="post">';
    							// On définit l'input caché qui nous permettra de valider le formulaire
    							echo "<input type=\"hidden\" name=\"validation\" value=\"ok\">";
     
    							// On définit l'input caché qui contiendra l'id du match
    							echo "<input type=\"hidden\" name=\"idMatch\" value=\"".$data["id"]."\">";
    							// On récupère en POST le nom de l'équipe 1
    							echo "<input type=\"hidden\" name=\"nomEq1\" value=\"".$data["eq1"]."\">";
    							// On récupère en POST le nom de l'équipe 2
    							echo "<input type=\"hidden\" name=\"nomEq2\" value=\"".$data["eq2"]."\">";
     
    							// on affiche la date du match
    							echo $data['date2'].' ';
     
    							// On affiche l'équipe 1
    							echo $data['eq1'].' ';
     
    							// On affiche la sélection du score pour l'équipe 1
    							echo '<select name="scoreEq1">\n';
    								for($i = 0; $i <= 10; $i++)
    									echo '<option value="'. $i .'">'. $i .'</option>\n';
    							echo '</select>\n';
     
    							// On affiche l'équipe 2
    							echo $data['eq2']."\n";
     
    							// On affiche la sélection pour l'équipe 2
    							echo '<select name="scoreEq2">\n';
    								for($j = 0; $j <= 10; $j++) 
    									echo '<option value="'. $j .'">'. $j .'</option>\n';
    							echo '</select>';
     
    							echo '<input type="submit" value="OK">\n';
     
    						echo '</form>';
     
    						echo "<br /><br />";
    					}   
     
    					// on ferme la connexion à mysql
    					mysql_close();

    Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
    Pas de question technique en privé
    - Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
    - Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Points : 98
    Points
    98
    Par défaut
    Je t'aurais bien invité à boire un verre... Je suis épaté, franchement !
    Tu peux pas me faire autant plaisir (c'est mon anniversaire en plus) Quel cadeau !

    ça fonctionne !!

    Sinon, une dernière chose sur la requête.
    comment permettre la modification d'un match déjà pronostiqué (UPDATE)

    J'ai bien essayé ça mais ça ne fonctionne pas. Est-ce que l'UPDATE fait aussi l'INSERT au cas où il n'y aurait pas d'entrée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    UPDATE 
    								`prono`
    							SET (
    								membre='".mysql_real_escape_string($pseudo)."',
    								eq1='".mysql_real_escape_string($eq1)."',
    								eq2='".mysql_real_escape_string($eq2)."',
    								idmatch='".mysql_real_escape_string($idMatch)."',
    								score_eq1='".mysql_real_escape_string($score1)."',
    								score_eq2='".mysql_real_escape_string($score2)."',
    								submit_date=now()
     
    							)
    Merci !!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2012, 12h56
  2. [MySQL] Bouton radio et requête SQL
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/04/2009, 23h53
  3. Requête SQL générique
    Par xav13fr dans le forum Développement
    Réponses: 3
    Dernier message: 20/02/2008, 08h50
  4. Requête SQL générique
    Par xav13fr dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/02/2008, 08h50
  5. exécuter deux requêtes SQL à partir d'un bouton de commande
    Par Platon93 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/12/2006, 17h57

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