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 :

Insérer avec liste déroulante dans base de données


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut Insérer avec liste déroulante dans base de données
    Bonjour,

    Après avoir cherché dans des multiples forum je n'ai toujours pas trouvé de réponse.

    J'aimerai pouvoir insérer des données dans une table et utiliser une liste déroulante provenant d'une autre table de la base de données. Donc pour résumer pouvoir insérer dans une table à partir d'une liste déroulante.

    Merci de votre aide.

    Hugo.

    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
    <?php
    session_start();
     
        $basededonnees = mysqli_connect('127.0.0.1', 'root', '', 'application');
     
        if(isset($_POST['listeappliformulaire']))
        {
            $libelle_application=htmlspecialchars($_POST['libelle_application']);
            $version_application=htmlspecialchars($_POST['version_application']);
            $liste_id_editeur=($_POST['liste_id_editeur']);
     
            if (!empty($_POST['libelle_application']) AND !empty($_POST['version_application']) AND !empty($_POST['liste_id_editeur']))
            {
                $libelle_applicationlenght=strlen($libelle_application);
                $version_applicationlenght=strlen($version_application);
     
                if ($libelle_applicationlenght <= 50 AND $version_applicationlenght <= 50)
                {
                    $libelle_applicationMin=strtolower($libelle_application);
                    $libelle_applicationMaj=ucwords($libelle_applicationMin);
     
                    $version_applicationMin=strtolower($version_application);
                    $version_applicationMaj=ucwords($version_applicationMin);
     
                    $requete_liste_applicationsexistant = ("SELECT * FROM r06_liste_applications_pilotage WHERE r06_libelle_application_pilotage ='$libelle_application' AND r06_version_application_pilotage ='$version_application'");
                    $resultat=mysqli_query($basededonnees,$requete_liste_applicationsexistant) or die(mysqli_error($basededonnees));
                    $row_cnt = mysqli_num_rows($resultat) or die(mysqli_error($basededonnees));
                    if($row_cnt == 0)
                    {
                        $requete_inserer_liste_application_pilotage = ("INSERT INTO r06_liste_applications_pilotage VALUES ('0', '$libelle_applicationMaj', '$version_applicationMaj', '$liste_id_editeur')");
                        mysqli_query($basededonnees,$requete_inserer_liste_application_pilotage) or die(mysqli_error($basededonnees));
     
                        $message = "La nouvelle liste a bien été créée";
     
                    }
                    else
                    {
                        $erreur = "La liste existe déjà";
                    }
                }
                else
                {
                    $erreur = "Le nombre de caractères maximum est 50 caractères";
                }
     
            }
            else
            {
                $erreur = "Tous les champs doivent être complétés";
            }
        }
    ?>
     
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <link rel="stylesheet" type="text/css" href="http://127.0.0.1:8000/edsa-eds-www/TEST%20V1/Style/style.css">
            <title>Ajouter Liste d'Applications Pilotage</title>
        </head>
        <body>
            <div class="titre2">
                <h3>Ajout d'une Liste d'Applications de Pilotage</h3>
            </div>
     
            <div class="forminscription">
                <form method="POST" action="">
                    <table>
                        <tr>
                            <td><label for="libelle_application">Libellé de Liste d'Applications de Pilotage:</label></td>
                            <td><input type="text" name="libelle_application" id="libelle_application" placeholder="Libellé de la Liste"></td>
                        </tr>
                        <tr>
                            <td><label for="version_application">Version de Liste d'Applications de Pilotage:</label></td>
                            <td><input type="text" name="version_application" id="version_application" placeholder="Version de la Liste"></td>
                        </tr>
                        <tr>
                            <td><label for="liste_id_editeur">Id de l'Editeur:</label></td>
                            <td>
                                <select name="liste_id_editeur" id="liste_id_editeur">
                                    <?php
                                        $requete_liste_deroulante='SELECT * FROM r05_editeur';
                                        $resultatliste = mysqli_query($basededonnees,$requete_liste_deroulante);
                                        while ($LD = mysqli_fetch_assoc($resultatliste))
                                            {
                                                echo'<option id="'.$LD['r05_id'].'">'.$LD['r05_nom_editeur'].'</option>';
                                            }
     
                                    ?>
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td></td>
                            <td align="center"><input type="submit" name="listeappliformulaire" value="Créer la Nouvelle Liste d'Applications"></td>
                        </tr>
                    </table>
                </form>
            </div>
     
            <div class="instructionsform">
                <?php
                if (isset($erreur))
                {
                    echo '<font color="red">'.$erreur.'</font>';
                }
     
                if (isset($message))
                {
                    echo '<font color="green">'.$message.'</font><br />';
                }
                ?>  
            </div>
     
            <ul class="menupage">
              <li><a href="AjouterListeApplications.php">RAFFRAICHIR LA PAGE</a></li>
              <li><a href="AjouterListeApplications.php">AJOUTER UNE NOUVELLE LISTE D'APPLICATIONS</a></li>
              <li><a href="ParametresListeApplications.php">AFFICHER LES AUTRES LISTE D'APPLICATIONS</a></li>
              <li><a href="Parametres.php">Retour Paramètres</a></li>
              <li><a href="..\MenuPrincipal\MenuPrincipal.php">Retour Menu Principal</a></li>
            </ul>
     
            <?php
                /* Fermeture de la connexion */
                mysqli_close($basededonnees);
            ?>
        </body>
    </html>





    Le code annonce aucune erreur, mais il ne créé aucun contenu dans la table de la base de données.

    Je pense que le problème se situe 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
    <tr>
       <td><label for="liste_id_editeur">Id de l'Editeur:</label></td>
       <td>
        <select name="liste_id_editeur" id="liste_id_editeur">
        <?php
             $requete_liste_deroulante='SELECT * FROM r05_editeur';
             $resultatliste = mysqli_query($basededonnees,$requete_liste_deroulante);
             while ($LD = mysqli_fetch_assoc($resultatliste))
            {
                echo'<option id="'.$LD['r05_id'].'">'.$LD['r05_nom_editeur'].'</option>';
            }
     
        ?>
        </select>
        </td>
    </tr>
    Mais impossible de trouver comment le résoudre.

    Je l'impression que la liste ne renvoie rien, c'est-à-dire que lorsque j'active le bouton de validation du formulaire une autre page vide s'ouvre et ensuite plus rien ne se passe.

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 537
    Par défaut
    En php tu peux afficher les erreurs en ajoutant ces lignes tout au début du fichier php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    Puis essaie de voir le contenu de la variable $resultatliste avec var_dump()
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $requete_liste_deroulante='SELECT * FROM r05_editeur';
    $resultatliste = mysqli_query($basededonnees,$requete_liste_deroulante);
    var_dump(mysqli_fetch_all($resultatliste) );//voir le contenu...
    ....

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut
    Re bonjour merci Toufik, même lorsque je mets var_dump la page n'affiche rien.

    Je remplis mon formulaire puis quand je le valide il m'ouvre la même page mais avec rien d'affiché dessus.

    Mais après ce que j’aimerai faire c'est remplir mon formulaire qui permet de remplir ma table r06_liste_applications_pilotage de ma base de données en rentrant 3 données dans le formulaire, 2 sont des inputs de texte que l'on rentre et la 3e donnée est une liste déroulante de la table r05_editeur que l'on affiche et on peut choisir l'editeur précédemment rentré dans la table r05_editeur puis on valide notre choix, ce qui nous fait ajouter la nouvelle liste dans la base de données.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    ce n'est pas <option id="...">, mais <option value="...">.

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 537
    Par défaut
    Salut,

    je viens de tester et j'ai trouvé deux lignes qui bloquent l'enregistrement.

    ligne 27
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row_cnt = mysqli_num_rows($resultat) or die(mysqli_error($basededonnees));
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row_cnt = mysqli_num_rows($resultat);
    ligne 30, supprimer les parenthèses autour de la requête mysql et si l'identifiant de la table est en auto-incrémente, tu remplaces le '0' par null :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete_inserer_liste_application_pilotage = "INSERT INTO r06_liste_applications_pilotage VALUES (null,'$libelle_applicationMaj', '$version_applicationMaj', '$liste_id_editeur')";
    Ne pas oublier aussi d'ajouter un utf8_decode autour des variables $libelle_application et version_application, pour les accents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $libelle_application=utf8_decode(htmlspecialchars($_POST['libelle_application']));
    $version_application=utf8_decode(htmlspecialchars($_POST['version_application']));

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je ne suis pas d'accord avec ceci :
    Citation Envoyé par Toufik83 Voir le message
    Ne pas oublier aussi d'ajouter un utf8_decode autour des variables $libelle_application et version_application, pour les accents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $libelle_application=utf8_decode(htmlspecialchars($_POST['libelle_application']));
    $version_application=utf8_decode(htmlspecialchars($_POST['version_application']));
    utf8_decode n'a d'intérêt dans ce contexte que si la page HTML générée n'est pas en encodage UTF-8 (ce qui n'est pas franchement recommandé). Est-ce le cas ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut Je Viens de résoudre mon problème
    Finalement j'ai localisé le problème au niveau de ma requête qui vérifie si la liste existe déjà dans la base et il ne reconnaissait pas l’éditeur que l'on importait de la base.

    Donc j'ai fais un comptage directement dans ma requête
    La voici ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete_liste_applicationsexistant = ("SELECT COUNT(*) FROM r04_logiciel_source WHERE r04_nom_logiciel ='$nom_logiciel' AND r04_fonction_logiciel ='$fonction_logiciel'");
    				$resultat=mysqli_query($basededonnees,$requete_liste_applicationsexistant) or die(mysqli_error($basededonnees));
    Voici mon code intégral remanié et fonctionnel surtout:
    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
    <?php
    session_start();
     
    	$basededonnees = mysqli_connect('127.0.0.1', 'root', '', 'application');
     
    	if(isset($_POST['sourcelogicielformulaire']))
    	{
    		$liste_id_editeur=($_POST['liste_id_editeur']);
    		$nom_logiciel=htmlspecialchars($_POST['nom_logiciel']);
    		$fonction_logiciel=htmlspecialchars($_POST['fonction_logiciel']);
    		$rep_question=($_POST['rep_question']);
     
    		if (!empty($_POST['liste_id_editeur']) AND !empty($_POST['nom_logiciel']) AND !empty($_POST['fonction_logiciel']) AND !empty($_POST['rep_question']))
    		{
    			$nom_logiciellenght=strlen($nom_logiciel);
    			$fonction_logiciellenght=strlen($fonction_logiciel);
     
    			if ($nom_logiciellenght <= 50 AND $fonction_logiciellenght <= 50) 
    			{
    				$nom_logicielMin=strtolower($nom_logiciel);
    				$nom_logicielMaj=ucwords($nom_logicielMin);
     
    				$fonction_logicielMin=strtolower($fonction_logiciel);
    				$fonction_logicielMaj=ucwords($fonction_logicielMin);
     
    				$requete_liste_applicationsexistant = ("SELECT COUNT(*) FROM r04_logiciel_source WHERE r04_nom_logiciel ='$nom_logiciel' AND r04_fonction_logiciel ='$fonction_logiciel'");
    				$resultat=mysqli_query($basededonnees,$requete_liste_applicationsexistant) or die(mysqli_error($basededonnees));
     
    				if('$resultat' == 0)
    				{
    					$requete_inserer_logiciel_source = ("INSERT INTO r04_logiciel_source (r04_id, r04_id_editeur, r04_nom_logiciel, r04_fonction_logiciel, r04_flag_bi_software) VALUES ('0', '$liste_id_editeur', '$nom_logicielMaj', '$fonction_logicielMaj', '$rep_question')");
    					mysqli_query($basededonnees,$requete_inserer_logiciel_source) or die(mysqli_error($basededonnees));
     
    					$message = "Le nouveau Logiciel a bien été créé";
     
    				}
    				else
    				{
    					$erreur = "Le Logiciel existe déjà";
    				}
    			}
    			else
    			{
    				$erreur = "Le nombre de caractères maximum est 50 caractères";
    			}
     
    		}
    		else
    		{
    			$erreur = "Tous les champs doivent être complétés";
    		}
    	}
    	else
    	{
     
    	}
     
    ?>
     
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<link rel="stylesheet" type="text/css" href="http://127.0.0.1:8000/edsa-eds-www/TEST%20V1/Style/style.css">
    		<link rel="shortcut icon" href="..\Images\ajouter.png">
    		<title>Ajouter Logiciel Source</title>
    	</head>
    	<body>
    		<div class="titre2">
    			<h3>Ajout d'un Logiciel Source</h3>
    		</div>
     
    		<div class="forminscription">	
    			<form method="POST" action="">
    				<table>
    					<tr>
    						<td><label for="liste_id_editeur">Editeur :</label></td>
    						<td>
    							<select name="liste_id_editeur" id="liste_id_editeur">
    								<?php 
    									$requete_liste_deroulante='SELECT * FROM r05_editeur'; 
    									$resultatliste = mysqli_query($basededonnees,$requete_liste_deroulante);
    									while ($LD = mysqli_fetch_array($resultatliste)) 
    										{
    											?><option value="<?php echo $LD['r05_id'] ?>"> <?php echo $LD['r05_nom_editeur'] ?> </option><?php
    										}
     
    								?>
    							</select>
    						</td>
    					</tr>
    					<tr>
    						<td><label for="nom_logiciel">Nom du Logiciel :</label></td>
    						<td><input type="text" name="nom_logiciel" id="nom_logiciel" placeholder="Nom du Logiciel"></td>
    					</tr>
    					<tr>
    						<td><label for="fonction_logiciel">Fonction du Logiciel :</label></td>
    						<td><input type="text" name="fonction_logiciel" id="fonction_logiciel" placeholder="Fonction du Logiciel"></td>
    					</tr>
    					<tr>
    						<td><label>Est-ce un Logiciel Décisionnel?</label></td>
    						<td>
    							<input type="radio" name="rep_question" value="Oui" id="Oui"/> 
    							<label for="Oui">Oui</label>
    							<input type="radio" name="rep_question" value="Non" id="Non"/>
    							<label for="Non">Non</label>
    						</td>
    					</tr>
    					<tr>
    						<td></td>
    						<td align="center"><input type="submit" name="sourcelogicielformulaire" value="Créer la Nouvelle Source"></td>
    					</tr>
    				</table>
    			</form>
    		</div>
     
    		<div class="instructionsform">
    			<?php
    			if (isset($erreur))
    			{
    				echo '<font color="red">'.$erreur.'</font>';
    			}
     
    			if (isset($message))
    			{
    				echo '<font color="green">'.$message.'</font><br />';
    			}
    			?>	
    		</div>
     
    		<ul class="menupage">
    		  <li><a href="AjouterSourcesLogiciels.php">RAFFRAICHIR LA PAGE</a></li>
    		  <li><a href="AjouterSourcesLogiciels.php">AJOUTER UN NOUVEAU LOGICIEL SOURCE</a></li>
    		  <li><a href="ParametresSourcesLogiciels.php">AFFICHER LES AUTRES LOGICIELS SOURCES</a></li>
    		  <li><a href="MenuParametres.php">Retour Menu Paramètres</a></li>
    		  <li><a href="Parametres.php">Retour Paramètres</a></li>
    		  <li><a href="..\MenuPrincipal\MenuPrincipal.php">Retour Menu Principal</a></li>
    		</ul>
     
    		<?php
    			/* Fermeture de la connexion */ 
    			mysqli_close($basededonnees);
    		?>
    	</b
    </html>
    Toufik oui je viens de rencontrer un problème avec les accents dans ma base car elle ne les reconnait pas, ton code résout ce problème?

    En tout cas merci pour votre aide.

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 537
    Par défaut
    @Celira, si la page est encodée en utf8 avec un <meta charset="utf-8" /> mais quand j'ai essayé d'insérer les accents sans utf8_decode(), les valeurs s'enregistrent encodées dans la table mysql.

    J'ai même essayé set_charset mais sans succès.

    D'habitude j'utilise PDO au lieu de mysqli, et je ne m'embête pas avec l'encodage..

    Citation Envoyé par hugojarry
    Toufik oui je viens de rencontrer un problème avec les accents dans ma base car elle ne les reconnait pas, ton code résout ce problème?
    Oui, avec utf8_decode(), les valeurs accentuées s'enregistrent correctement.

    Cette condition fonctionne ?
    Puis pourquoi tu insert toujours un '0' comme valeur du champ "r04_id" ? l'identifiant de la table n'est pas en auto-incrémente ?

    Et pourquoi tu mets un die pour chaque requête (lignes : 27, 32) ?

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut
    En mysqli lorsque je mets la valeur NULL ma requête bug et à l'inverse 0 ne mets rien car j'ai mis le critère not null et on incrémente de 1 avec l'auto incrémentation

    Les 2 die s’était pour vérifier quand mes requêtes n'étaient pas bonnes

    J'essaie de faire ce que tu dis avec utf8decode mais ça ne fonctionne pas

    Et oui la condition fonctionne

  10. #10
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 537
    Par défaut
    Ok, si tu mets le id en auto incrémente, dans ce cas il ne faut pas le mettre dans la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO r04_logiciel_source ( r04_id_editeur, r04_nom_logiciel, r04_fonction_logiciel, r04_flag_bi_software) VALUES ( '$liste_id_editeur', '$nom_logicielMaj', '$fonction_logicielMaj', '$rep_question')"
    Pour utf8_decode pour moi ça fonctionne, fais voir ce que tu as écris dans le code.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut
    Dans la base de données elles sont reconnues avec utf8_decode mais lorsque je les affiche dans un tableau sur une autre page je me retrouve avec des ??????

    Je ne vois pas pourquoi

    Le code de la seconde 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
    <?php
    session_start();
     
    	$basededonnees = mysqli_connect('127.0.0.1', 'root', '', 'application');
     
    	$requete = "SELECT * FROM r04_logiciel_source";
    	$resultat = mysqli_query($basededonnees,$requete);
    ?>
     
    <html>
    	<head>
    	   	<meta charset="utf-8" />
    		<link rel="stylesheet" href="http://127.0.0.1:8000/edsa-eds-www/TEST%20V1/Style/style.css" />
    		<link rel="shortcut icon" href="..\Images\parametres1.png">
        	<title>Paramètres des Logiciels Sources</title>
    	</head>
    	<body>
    		<div class="titre">
    			<h3>Paramètres des Logiciels Sources</h3>
    		</div>
    		<div class="barrenav">	
    			<ul>
    				<li> <a href="..\MenuPrincipal\MenuPrincipal.php">Menu Principal</a></li>
    				<li> <a href="..\GestionUtilisateurs\GestionUtilisateurs.php">Gestion Utilisateurs</a></li>
    				<li> <a href="..\GestionFicheIndicateurs\GestionFicheIndicateurs.php">Gestion Fiches d'Indicateurs</a></li>
    				<li> <a href="..\GestionFormulesIndicateurs\GestionFormulesIndicateurs.php">Gestion Formules d'Indicateurs</a></li>
    				<li> <a href="..\Profil\Profil.php?id=<?php echo '.$_SESSION[r03_id]' ?>">Mon Profil</a></li>
    				<li style="float:right"> <a href="..\SessionUtilisateurs\Deconnexion.php"><img src="..\Images\deconnexion1.png" link rel="shortcut icon"/></a></li>
    				<li style="float:right"> <a class="active" href="..\Parametres\Parametres.php">Paramètres</a></li>
    			</ul>
    		</div>	
     
    		<ul class="menupage">
    		  <li><a href="ParametresSourcesLogiciels.php">RAFFRAICHIR LA PAGE</a></li>
    		  <li><a href="AjouterSourcesLogiciels.php">AJOUTER UN NOUVEAU LOGICIEL SOURCE</a></li>
    		  <li><a href="MenuParametres.php">Retour Menu Paramètres</a></li>
    		  <li><a href="Parametres.php">Retour Paramètres</a></li>
    		  <li><a href="..\MenuPrincipal\MenuPrincipal.php">Retour Menu Principal</a></li>
    		</ul>
     
    		<table border="1" class="Tableau" align="center">
    			<thead>
    				<tr>
    					<th>ID Source Logiciel</th><th>ID Editeur</th><th>Nom Logiciel</th><th>Fonction Logiciel</th><th>Logiciel Décisionnel</th>
    				</tr>
    			</thead>
    			<?php while($SL = mysqli_fetch_assoc($resultat))
    			{ ?>
    			<tbody>
    				<tr>
    					<td align="center"><?php echo ($SL['r04_id']) ?></td>
    					<td align="center"><?php echo ($SL['r04_id_editeur']) ?></td>
    					<td align="center"><?php echo ($SL['r04_nom_logiciel']) ?></td>
    					<td align="center"><?php echo ($SL['r04_fonction_logiciel']) ?></td>
    					<td align="center"><?php echo ($SL['r04_flag_bi_software']) ?></td>
    					<td align="center"><a href="SupprimerSourcesLogiciels.php?id=<?php echo($SL['r04_id']) ?>">SUPPRIMER</a></td>
    					<td align="center"><a href="ModifierSourcesLogiciels.php?id=<?php echo($SL['r04_id']) ?>">MODIFIER</a></td>
    				</tr>
    			</tbody>
    			<?php } ?>
    		</table>
    	</body>
    </html>

  12. #12
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 537
    Par défaut
    Essaies d'ajouter cette ligne directement après la connexion à la base dans la deuxième page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $basededonnees = mysqli_connect('127.0.0.1', 'root', '', 'application');
    mysqli_set_charset( $basededonnees , 'UTF8' );//celle là

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut
    Pour afficher c'est parfait.

    Par contre j'ai une page de modification et la ça ne fonctionne pas car j'ai besoin d'afficher et insérer dans la base de données

    J'ai cette erreur quand je modifie ma saisie:
    Incorrect string value: '\xE2\xA9\xE3\x83\xE2\xA9...' for column 'r04_nom_logiciel' at row 1

    Voici mon 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
    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
    <?php
    session_start(); 
    	//connection au serveur	+ sélection de la base de données:
    	$basededonnees = mysqli_connect('127.0.0.1', 'root', '', 'application');
    	mysqli_set_charset( $basededonnees , 'UTF8' );
     
    	$getid = ($_GET['id']);
    	$requete_user = ("SELECT * FROM r04_logiciel_source WHERE r04_id = '$getid'");
    	$resultat_user = mysqli_query($basededonnees,$requete_user) or die(mysqli_error($basededonnees));
    	$information_user = mysqli_fetch_assoc($resultat_user);
     
     
    	if(isset($_POST['logicielsourceformulaire']))
    	{
    		$liste_id_editeur=($_POST['liste_id_editeur']);
    		$nom_logiciel=utf8_encode(htmlspecialchars($_POST['nom_logiciel']));
    		$fonction_logiciel=utf8_encode(htmlspecialchars($_POST['fonction_logiciel']));
    		$rep_question=($_POST['rep_question']);
     
     
    		if (!empty($_POST['liste_id_editeur']) AND !empty($_POST['nom_logiciel']) AND !empty($_POST['fonction_logiciel']) AND !empty($_POST['rep_question']))
    		{
    			$nom_logiciellenght=strlen($nom_logiciel);
    			$fonction_logiciellenght=strlen($fonction_logiciel);
     
    			if ($nom_logiciellenght <= 50 AND $fonction_logiciellenght <= 50) 
    			{
    				$nom_logicielMin=strtolower($nom_logiciel);
    				$nom_logicielMaj=ucwords($nom_logicielMin);
     
    				$fonction_logicielMin=strtolower($fonction_logiciel);
    				$fonction_logicielMaj=ucwords($fonction_logicielMin);
     
    				$requete = "UPDATE r04_logiciel_source SET r04_id='$getid', r04_id_editeur='$liste_id_editeur', r04_nom_logiciel='$nom_logicielMaj', r04_fonction_logiciel='$fonction_logicielMaj', r04_flag_bi_software='$rep_question' WHERE r04_id=$getid";
    				mysqli_query($basededonnees,$requete) or die(mysqli_error($basededonnees));
     
    				$message = "Votre modification a bien été pris en compte";
    				header("Location: ParametresSourcesLogiciels.php");
     
    			}
    			else
    			{
    				$erreur = "Le nombre de caractères maximum est 50 caractères";
    			}
     
    		}
    		else
    		{
    			$erreur = "Tous les champs doivent être complétés";
    		}
    	}
    	else
    	{
    		$conseil = "Vérifier l'Editeur et Cocher Oui ou Non";
    	}
    ?>
     
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<link rel="stylesheet" type="text/css" href="http://127.0.0.1:8000/edsa-eds-www/TEST%20V1/Style/style.css">
    		<link rel="shortcut icon" href="..\Images\modifier.png">
    		<title>Modification du Logiciel Source</title>
    	</head>
    	<body>
    		<div class="titre2">
    			<h2>Modification du Logiciel Source</h2>
    		</div>
     
    		<div class="forminscription">	
    			<form method="POST" action="">
    				<table>
    					<tr>
    						<td><label for="liste_id_editeur">Editeur :</label></td>
    						<td>
    							<select name="liste_id_editeur" id="liste_id_editeur">
    								<?php 
    									$requete_liste_deroulante='SELECT * FROM r05_editeur'; 
    									$resultatliste = mysqli_query($basededonnees,$requete_liste_deroulante);
    									while ($LD = mysqli_fetch_array($resultatliste)) 
    										{
    											?><option value="<?php echo $LD['r05_id'] ?>"> <?php echo $LD['r05_nom_editeur'] ?> </option><?php
    										}
     
    								?>
    							</select>
    						</td>
    					</tr>
    					<tr>
    						<td><label for="nom_logiciel">Nom du Logiciel :</label></td>
    						<td><input type="text" name="nom_logiciel" id="nom_logiciel" placeholder="Nom du Logiciel" value="<?php if(isset($information_user['r04_nom_logiciel'])) {echo $information_user['r04_nom_logiciel'];} ?>"></td>
    					</tr>
    					<tr>
    						<td><label for="fonction_logiciel">Fonction du Logiciel :</label></td>
    						<td><input type="text" name="fonction_logiciel" id="fonction_logiciel" placeholder="Fonction du Logiciel" value="<?php if(isset($information_user['r04_fonction_logiciel'])) {echo $information_user['r04_fonction_logiciel'];} ?>"></td>
    					</tr>
    					<tr>
    						<td><label>Est-ce un Logiciel Décisionnel?</label></td>
    						<td align="center">
    							<input type="radio" name="rep_question" value="Oui" id="Oui"/> 
    							<label for="Oui">Oui</label>
    							<input type="radio" name="rep_question" value="Non" id="Non"/>
    							<label for="Non">Non</label>
    						</td>
    					</tr>
    					<tr>
    						<td></td>
    						<td align="center"><input type="submit" name="logicielsourceformulaire" value="Modifier le Logiciel"></td>
    					</tr>
    				</table>
    			</form>
    		</div>
     
    		<div class="instructionsform">
    			<?php
    			if (isset($erreur))
    			{
    				echo '<font color="red">'.$erreur.'</font>';
    			}
     
    			if (isset($message))
    			{
    				echo '<font color="green">'.$message.'</font>';
    			}
     
    			if (isset($conseil))
    			{
    				echo '<font color="#4B6B6B">'.$conseil.'</font>';
    			}
    			?>	
    		</div>
    		<?php
    			/* Fermeture de la connexion */ 
    			mysqli_close($basededonnees);
    		?>
    	</body>
    </html>

  14. #14
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 537
    Par défaut
    C'est utf8_decode et pas utf8_encode.

    Comme ça fait bien longtemps que je n'ai pas utilisé mysqli, je viens d’apercevoir que le comportement de mysqli_set_charset() en affichage est différent de celui de l’insertion et la modification.

    Et si tu déplaces les lignes (5, 8, 9, 10) pour qu'en suite les mettre juste avant le deuxième <tr> de la <table> (ligne 89), l'insertion des accents est-elle correcte ?
    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
     
    <?php
    session_start(); 
    	//connection au serveur	+ sélection de la base de données:
    	$basededonnees = mysqli_connect('127.0.0.1', 'root', '', 'application');
            $getid = $_GET['id'];
            ....
            ....
     
            ?>
           ....
           <table>
                   <tr>...</tr>
                   <?php 
                            mysqli_set_charset( $basededonnees , 'UTF8' );//la mettre ici pas en haut
                            $requete_user = ("SELECT * FROM r04_logiciel_source WHERE r04_id = '$getid'");
    	                $resultat_user = mysqli_query($basededonnees,$requete_user) or die(mysqli_error($basededonnees));
    	                $information_user = mysqli_fetch_assoc($resultat_user);
                    ?>
                   ....
           </table>
            ....
    Bref, ce que j'ai fini par comprendre (et si je ne me trompe pas), c'est qu'avec les requêtes insert et update on doit utiliser l'encodage "latin1" juste avant l’exécution, par contre avec une requête select on la précède d'un encodage "utf8".

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut
    Parfait ça fonctionne lorsqu'on met utf8 pour les select et latin1 pour les insert et update merci

    J'ai une autre question si ça te dérange pas c'est que lorsque je fais une modification je rappelle ma liste déroulante mais elle se remet à chaque fois avec la première valeur affichée est-ce que je peux faire quelque chose pour que ça affiche ça que l'on avait choisi de mettre avant de vouloir modifier ou pas?

    Je pense que c'est une manipulation a faire dans le select de mon formulaire de modifications la où j'ai mis en rouge:
    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
    <div class="forminscription">	
    			<form method="POST" action="">
    				<table>
    					<tr>
    						<td><label for="liste_id_editeur">Editeur :</label></td>
    						<td>
    							<select name="liste_id_editeur" id="liste_id_editeur">
    								<?php 
    									$requete_liste_deroulante='SELECT * FROM r05_editeur'; 
    									$resultatliste = mysqli_query($basededonnees,$requete_liste_deroulante);
    									while ($LD = mysqli_fetch_array($resultatliste)) 
    										{
    											?><option value="<?php echo $LD['r05_id'] ?>"> <?php echo $LD['r05_nom_editeur'] ?> </option><?php
    										}
    									
    								?>
    							</select>
    						</td>
    					</tr>
    					<tr>
    						<td><label for="nom_logiciel">Nom du Logiciel :</label></td>
    						<td><input type="text" name="nom_logiciel" id="nom_logiciel" placeholder="Nom du Logiciel" value="<?php if(isset($information_user['r04_nom_logiciel'])) {echo $information_user['r04_nom_logiciel'];} ?>"></td>
    					</tr>
    					<tr>
    						<td><label for="fonction_logiciel">Fonction du Logiciel :</label></td>
    						<td><input type="text" name="fonction_logiciel" id="fonction_logiciel" placeholder="Fonction du Logiciel" value="<?php if(isset($information_user['r04_fonction_logiciel'])) {echo $information_user['r04_fonction_logiciel'];} ?>"></td>
    					</tr>
    					<tr>
    						<td><label>Est-ce un Logiciel Décisionnel?</label></td>
    						<td align="center">
    							<input type="radio" name="rep_question" value="Oui" id="Oui"/> 
    							<label for="Oui">Oui</label>
    							<input type="radio" name="rep_question" value="Non" id="Non"/>
    							<label for="Non">Non</label>
    						</td>
    					</tr>
    					<tr>
    						<td></td>
    						<td align="center"><input type="submit" name="logicielsourceformulaire" value="Modifier le Logiciel"></td>
    					</tr>
    				</table>
    			</form>
    		</div>
    Mon code complet:
    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
    <?php
    session_start(); 
    	//connection au serveur	+ sélection de la base de données:
    	$basededonnees = mysqli_connect('127.0.0.1', 'root', '', 'application');
     
    	mysqli_set_charset( $basededonnees , 'UTF8' );	
    	$getid = ($_GET['id']);
    	$requete_user = ("SELECT * FROM r04_logiciel_source WHERE r04_id = '$getid'");
    	$resultat_user = mysqli_query($basededonnees,$requete_user) or die(mysqli_error($basededonnees));
    	$information_user = mysqli_fetch_assoc($resultat_user);
     
     
    	if(isset($_POST['logicielsourceformulaire']))
    	{
    		$liste_id_editeur=($_POST['liste_id_editeur']);
    		$nom_logiciel=utf8_decode(htmlspecialchars($_POST['nom_logiciel']));
    		$fonction_logiciel=utf8_decode(htmlspecialchars($_POST['fonction_logiciel']));
    		$rep_question=($_POST['rep_question']);
     
     
    		if (!empty($_POST['liste_id_editeur']) AND !empty($_POST['nom_logiciel']) AND !empty($_POST['fonction_logiciel']) AND !empty($_POST['rep_question']))
    		{
    			$nom_logiciellenght=strlen($nom_logiciel);
    			$fonction_logiciellenght=strlen($fonction_logiciel);
     
    			if ($nom_logiciellenght <= 50 AND $fonction_logiciellenght <= 50) 
    			{
    				$nom_logicielMin=strtolower($nom_logiciel);
    				$nom_logicielMaj=ucwords($nom_logicielMin);
     
    				$fonction_logicielMin=strtolower($fonction_logiciel);
    				$fonction_logicielMaj=ucwords($fonction_logicielMin);
     
    				mysqli_set_charset($basededonnees, 'LATIN1');
    				$requete = "UPDATE r04_logiciel_source SET r04_id='$getid', r04_id_editeur='$liste_id_editeur', r04_nom_logiciel='$nom_logicielMaj', r04_fonction_logiciel='$fonction_logicielMaj', r04_flag_bi_software='$rep_question' WHERE r04_id=$getid";
    				mysqli_query($basededonnees,$requete) or die(mysqli_error($basededonnees));
     
    				$message = "Votre modification a bien été pris en compte";
    				header("Location: ParametresSourcesLogiciels.php");
     
    			}
    			else
    			{
    				$erreur = "Le nombre de caractères maximum est 50 caractères";
    			}
     
    		}
    		else
    		{
    			$erreur = "Tous les champs doivent être complétés";
    		}
    	}
    	else
    	{
    		$conseil = "Vérifier l'Editeur et Cocher Oui ou Non";
    	}
    ?>
     
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<link rel="stylesheet" type="text/css" href="http://127.0.0.1:8000/edsa-eds-www/TEST%20V1/Style/style.css">
    		<link rel="shortcut icon" href="..\Images\modifier.png">
    		<title>Modification du Logiciel Source</title>
    	</head>
    	<body>
    		<div class="titre2">
    			<h2>Modification du Logiciel Source</h2>
    		</div>
     
    		<div class="forminscription">	
    			<form method="POST" action="">
    				<table>
    					<tr>
    						<td><label for="liste_id_editeur">Editeur :</label></td>
    						<td>
    							<select name="liste_id_editeur" id="liste_id_editeur">
    								<?php 
    									$requete_liste_deroulante='SELECT * FROM r05_editeur'; 
    									$resultatliste = mysqli_query($basededonnees,$requete_liste_deroulante);
    									while ($LD = mysqli_fetch_array($resultatliste)) 
    										{
    											?><option value="<?php echo $LD['r05_id'] ?>"> <?php echo $LD['r05_nom_editeur'] ?> </option><?php
    										}
     
    								?>
    							</select>
    						</td>
    					</tr>
    					<tr>
    						<td><label for="nom_logiciel">Nom du Logiciel :</label></td>
    						<td><input type="text" name="nom_logiciel" id="nom_logiciel" placeholder="Nom du Logiciel" value="<?php if(isset($information_user['r04_nom_logiciel'])) {echo $information_user['r04_nom_logiciel'];} ?>"></td>
    					</tr>
    					<tr>
    						<td><label for="fonction_logiciel">Fonction du Logiciel :</label></td>
    						<td><input type="text" name="fonction_logiciel" id="fonction_logiciel" placeholder="Fonction du Logiciel" value="<?php if(isset($information_user['r04_fonction_logiciel'])) {echo $information_user['r04_fonction_logiciel'];} ?>"></td>
    					</tr>
    					<tr>
    						<td><label>Est-ce un Logiciel Décisionnel?</label></td>
    						<td align="center">
    							<input type="radio" name="rep_question" value="Oui" id="Oui"/> 
    							<label for="Oui">Oui</label>
    							<input type="radio" name="rep_question" value="Non" id="Non"/>
    							<label for="Non">Non</label>
    						</td>
    					</tr>
    					<tr>
    						<td></td>
    						<td align="center"><input type="submit" name="logicielsourceformulaire" value="Modifier le Logiciel"></td>
    					</tr>
    				</table>
    			</form>
    		</div>
     
    		<div class="instructionsform">
    			<?php
    			if (isset($erreur))
    			{
    				echo '<font color="red">'.$erreur.'</font>';
    			}
     
    			if (isset($message))
    			{
    				echo '<font color="green">'.$message.'</font>';
    			}
     
    			if (isset($conseil))
    			{
    				echo '<font color="#4B6B6B">'.$conseil.'</font>';
    			}
    			?>	
    		</div>
    		<?php
    			/* Fermeture de la connexion */ 
    			mysqli_close($basededonnees);
    		?>
    	</body>
    </html>

  16. #16
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 537
    Par défaut
    Oui, tu peux le faire puisque la valeur de la liste déroulante est stockée dans la variable $_POST['liste_id_editeur'], il va falloir vérifier si le $LD['r05_id']==$_POST['liste_id_editeur'].
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option value="<?php echo $LD['r05_id'] ?>" <?php if( isset($liste_id_editeur) && (int)$LD['r05_id']==(int)$liste_id_editeur){ echo "selected";}?>> <?php echo $LD['r05_nom_editeur'] ?> </option>
    N'oublies pas d'ajouter des mots accentués dans la table r05_editeur aussi, pour t'assurer que l'affichage est bon, parce qu'il peut y avoir des noms éditeur avec des accents...

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$getid = ($_GET['id']);
    	$requete_user = ("SELECT * FROM r04_logiciel_source WHERE r04_id = '$getid'");
    @Toufik83
    Je te laisse lui expliquer tout l'intérêt des requêtes préparées, OK ?

    OU, au moins, de mysqi_real_escape_string().

  18. #18
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 537
    Par défaut
    @jreaux62

    Oui, je lui ai dit d'utiliser les requêtes préparées, mais apparemment il a peur de modifier tout son code puis je pense que tu voulais dire mysqli_real_escape_string pas mysql_real_escape_string parce que cette dernière est obsolète en php 5.x.

    hugojarry Si j'étais toi, et que je voudrais apprendre le php encore plus... je referai les mêmes scripts mais en préparant les requêtes comme @jreaux62 te l'a suggéré.

    De un tu ne te casses plus la tête avec l'encodage et de deux tu protèges tes requêtes des injections mysql.

    Edit :Mauvaise nouvelle pour toi mais bonne pour la pratique.
    En essayant de résoudre le problème de cette discussion j'ai remarqué un sérieux problème d'apostrophe et finalement je pense que tu as vraiment besoin de passer à PDO.

Discussions similaires

  1. comment insérer la liste déroulante dans BD
    Par syrine01 dans le forum Langage
    Réponses: 3
    Dernier message: 16/12/2013, 16h31
  2. [XL-2007] Liste déroulante et base de données
    Par colapsus dans le forum Macros et VBA Excel
    Réponses: 67
    Dernier message: 10/02/2012, 13h50
  3. Réponses: 3
    Dernier message: 17/09/2009, 16h26
  4. problème liste déroulante et base de donnée
    Par sbcbc dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2009, 14h08
  5. [MySQL] Liste déroulante et base de données
    Par lanysteph dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 20/10/2006, 13h07

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