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

Requêtes MySQL Discussion :

Problème avec les requêtes MYSQL


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème avec les requêtes MYSQL
    Bonjour,
    Je suis en train de découvrir les bases de données MYSQL et un problème vient à moi.
    J'aimerais insérer une nouvelle "ligne" dans ma base de données nommée Tableau,

    J'ai des doutes sur les deux premières lignes pour se connecter à la base et pour ajouter une ligne avec INSERT INTO :

    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
     
    <?php 
    $bdd = new PDO('mysql:host=mysql.hostinger.fr;dbname=u537521533_test','u537521533_test1','mot_de_passe');
    $date=$_POST['date'];
    $matiere=$_POST['matière'];
    $contenu=$_POST['resu'];
    if(isset($_POST['mdp']) AND $_POST['mdp']== "mdp")
    {
    	$bdd= 'INSERT INTO `Tableau`(date,matiere,contenu) VALUES($date,$matiere,$contenu)';
    }
    else
    {
    	echo "<script language=\"javascript\">
        alert ('Le mot de passe est incorrect !');
        </script>";
    }
    ?>
    Y a t il une faute que j'aurais oubliée ? Car quand j'entre des valeurs à l’intérieur des mes formulaires, la base de données n'a pas cette nouvelle "ligne" avec les informations entrées.

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 899
    Par défaut
    Salut Titaii2.

    1) Est-ce que vous essayez d'accéder à votre base de données depuis votre PC ?
    si c'est OUI, et après avoir fait une recherche sur le net, la réponse est que vous ne pouvez pas le faire depuis un compte gratuit.
    --> http://www.hostinger.fr/forum/aide-p...ote-mysql.html

    2) je ne sais pas si cela a une quelconque influence, mais mes chaînes de caractères, je les mets entre guillemets et non entre apostrophes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd = new PDO('mysql:host=mysql.hostinger.fr;dbname=u537521533_test',  'u537521533_test1','mot_de_passe');
    3) je ne voie rien de particulier dans la déclarative ci-dessus.
    Est-ce que vos paramètres sont correctes ?
    Est-ce que vous avez renseigné votre bon mot de passe ?

    4) voici en PDO comment gérer votre connexion :
    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
    /*-----------------------------------------------------*/
    /* Informations pour la connexion à la base de données */
    /*-----------------------------------------------------*/
     
    $nom_du_serveur  = "mysql:host=mysql.hostinger.fr;dbname=u537521533_test";
    $nom_utilisateur = "u537521533_test1";
    $mot_de_passe    = "mot_de_passe";
     
    $options         = array(
    	PDO::ATTR_CASE               => PDO::CASE_LOWER,
    	PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION
    );
     
    /*----------------------*/
    /* Connexion au Serveur */
    /*----------------------*/
     
    try {
    	$link = new PDO($nom_du_serveur, $nom_utilisateur, $mot_de_passe, $options);
    }
    catch (Exception $e)
    {
    	echo "Connection à MySql impossible : ", $e->getMessage();
    	die();
    }
    5) pour l'insertion, votre code est incomplet !
    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
    /*-----------------------------------*/
    /* Insertion dans la table "clients" */
    /*-----------------------------------*/
     
    try {
    	$ins = $link->prepare("INSERT INTO `Tableau` (`date`, `matiere`, `contenu`) VALUES (:param1, :param2, :param3)");
     
    	$ins->bindParam('param1', $date);
    	$ins->bindParam('param2', $matiere);
    	$ins->bindParam('param3', $contenu);
     
    	$ins->execute();
    }
    catch ( Exception $e ) {
    	echo "Une erreur est survenue dans la requète insert : ", $e->getMessage();
    	die();
    }
    6) un paramètre dans une requête préparée commence par ':'.
    Pour faire le passage des paramètres, il faut utiliser 'bindparam'.
    Pour exécuter la requête, il suffit de mettre 'execute()'.

    Ici, les erreurs sont sous la forme d'exceptions.

    7) il y a une mauvaise habitude que je voie fréquemment sur le net.
    La concaténation en php se fait avec le point, comme ci-après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO `Tableau`(`date`, `matiere`, `contenu`) VALUES(".$date.",".$matiere.",".$contenu.")";
    --> http://php.net/manual/fr/language.operators.string.php

    @+

  3. #3
    Invité
    Invité(e)
    Par défaut
    CA MARCHE !
    Merci beaucoup pour votre aide, et d'avoir pris le temps de lire et de répondre à mes questions

    EDIT: J'aurais juste une petite question encore
    Le but de cette "manœuvre" est d'entrer du texte dans les trois formulaires et donc de les récupérer après pour les placer automatiquement dans un tableau à trois lignes.
    Nom : Capture.PNG
Affichages : 132
Taille : 1,53 Mo
    Cependant, je n'ai pas la moindre idée de comment rajouter automatiquement une ligne en dessous et y placer des informations.

    PS : Merci encore pour l'aide que vous m'avez apporté
    PS: je fait ceci dans le cadre d'un projet de Terminale S.SI, l'adresse de mon site est siteprojet.890m.com, jetez y un coup d'oeil si vous avez le temps et dites moi si quelque chose ne vas pas.
    Dernière modification par Invité ; 28/01/2016 à 18h32.

  4. #4
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 899
    Par défaut
    Salut Titaii2 .

    Quelques remarques :

    1) un document html doit commencer par un doctype. Si vous ne savez pas trop quoi mettre, mettez :
    2) Vous avez un leger problème avec vos accents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <title>R?sum? S?ances</title>
    <meta charset="utf-8" />
    Le mieux est de conserver l'ordre de vos deux balises, mais de remplacer vos accents dans la balise title par html codes.
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <title>R&eacute;sum&eacute; des S&acute;ances !</title>
    Le 'é' est remplacé par &amp;eacute;.

    3) Mettre la balise "<meta charset="utf-8">", c'est bien mais est-vous certain d'avoir enregistré votre fichier document html dans la bonne codification ?
    Sous Notepad++, vous cliquez sur l'onglet "encodage" et vous sélectionnez "convertir en utf-8 (sans bom)".
    En jetant un coup d'oeil dans le fichier avant sauvegarde, tous les caractères avec accents doivent être lisibles.
    Si ce n'est pas le cas, remplacé le schimblique par le bon caractère accentué !

    4) dans votre page photos, il y a des liens erronées.

    5) vous mettez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <link rel="stylesheet" href="style.css" />
    <style type="text/css">a:link{text-decoration:none}</style>
    <link rel="shortcut icon" href="Terminator.ico" type="image/x-icon"/> 
    <link rel="icon" href="Terminator.ico" type="image/x-icon"/>
    Tous vos styles doivent être dans le même fichier style.css.
    La deuxième ligne n'a aucun raison d'être là.

    La troisième et quatrième ligne sont redondantes !

    6) pourquoi avoir changé de jeu de caractères pour la page "contact.html" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta charset="charset=ISO-8859-1" />
    Oui, en effet, cela affiche correctement vos accents, mais le problème est l'oubli de la balise "doctype" dans vos documents html.
    Donc conservez partout l'utf-8, et mettez partout votre balise doctype dans vos documents html.

    Citation Envoyé par Titaii2
    Le but de cette "manœuvre" est d'entrer du texte dans les trois formulaires et donc de les récupérer après pour les placer automatiquement dans un tableau à trois lignes.
    Juste que je comprends votre demande.

    Citation Envoyé par Titaii2
    Cependant, je n'ai pas la moindre idée de comment rajouter automatiquement une ligne en dessous et y placer des informations.
    Là, c'est un peu plus obscure pour moi. Vous voulez dire :
    a) comment faire pour saisir une ligne dans ma table au travers du formulaire ?
    b) et après la validation du formulaire, comment obtenir le vidage de mon tableau ?

    Est-ce bien cela ?

    Je sens que vous allez avoir mal à votre .

    @+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    en gros vous avez à peu près compris le principe, A ce moment même la page envoie les données des formulaires dans une BDD, je voudrais ainsi récupérer ces données et les insérer dans une nouvelle ligne (créée au même moment dans le tableau vide que vous pouvez voir dans l'image précédente).
    Dernière modification par al1_24 ; 29/01/2016 à 12h37. Motif: Citation inutile

  6. #6
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 899
    Par défaut
    Salut Titaii2.

    Comme vous êtes débutant, je vais vous donner une solution simple a mettre en oeuvre. Je reprends un vieil exercice que j'avais fait.
    J'aime bien conserver des modèles de ce que j'ai fait, afin de me remémorer en cas de panne d'idée. Voici le document html :
    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
    <!doctype html>
    <html>
    <head>
    <meta charset="ISO-8859-1" />
    <title>Test du SGBD MySql !</title>
     
    <link rel="stylesheet" type="text/css" href="Styles.css" />
    </head>
     
    <body>
    <h1>Test du SGBD MySql !</h1>
     
    <form action="PHP/Add.php" method="POST">
    	<label for="nom">
    		<span>Nom&nbsp;:&nbsp;</span>
    		<input type="text" name="nom" value="" />
    	</label>
     
    	<label for="prenom">
    		<span>Prenom&nbsp;:&nbsp;</span>
    		<input type="text" name="prenom" value="" />
    	</label>
     
    	<label for="naissance">
    		<span>Date de Naissance&nbsp;:&nbsp;</span>
    		<input type="date" name="naissance" value="" />
    	</label>
     
    	<label for="ville">
    		<span>Ville&nbsp;:&nbsp;</span>
    		<input type="text" name="ville" value="" />
    	</label>
     
    	<label for="saisie">
    		<span>Aucune Saisie&nbsp;:&nbsp;</span>
    		<input type="checkbox" name="saisie" checked="checked" />
    	</label>
     
    	<input type="submit" value="Envoyer" />
    </form>
    </body>
    </html>
    J'ai supprimé tout ce qui ne sert à rien, en conservant juste le formulaire.
    Vous saisissez les données dans votre formulaire et vous cliquez sur envoyer.
    Qu'est-ce qui se passe après ? A la ligne 'form action', un fichier php est spécifié.
    Celui-ci est exécuté quand vous cliquez sur "envoyez". Il va récupérer selon la méthode POST toutes les zones de saisies de votre formulaire.
    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
    <!doctype html>
    <html>
    <head>
    <meta charset="ISO-8859-1" />
    <title>Test du SGBD MySql !</title>
     
    <link rel="stylesheet" type="text/css" href="../Styles.css" />
    </head>
     
    <body>
    <h1>Test du SGBD MySql !</h1>
     
    <?php
    /*------------------------*/
    /* On récupére les champs */
    /*------------------------*/
     
    $reponse   = "";
    $saisie    = false;
    $datenreg  = "";
     
    extract ($_POST);
     
    require_once("MySql_In.php");
     
    /*------------------------------------------------------------*/
    /* Recherche du plus haut Identifiant dans la table "clients" */
    /*------------------------------------------------------------*/
     
    if ($saisie == false)
    {
    	if (($nom == "") and ($prenom == ""))
    		$reponse = "Veuillez saisir le nom et le prénom !";
    	else
    	{
    		$requete1 = "select MAX(ID) as MAX from tab_clients";
     
    		try {
    			$sql1  = $link->query($requete1);
    			$enreg = $sql1->fetch(PDO::FETCH_OBJ);
    			$nbre  = $enreg->MAX;
    		}
    		catch ( Exception $e )
    		{
    			echo "Une erreur est survenue dans la requète select 1 : ", $e->getMessage();
    			die();
    		}
     
    		$sql1->closeCursor();
     
    		$id = $nbre + 1;
     
    		/*---------------------------------------------*/
    		/* initialisation à la date et l'heure du jour */
    		/*---------------------------------------------*/
     
    		$datenreg = date('Y-m-d H:i:s');
     
    		/*-----------------------------------*/
    		/* Insertion dans la table "clients" */
    		/*-----------------------------------*/
     
    		try {
    			$ins = $link->prepare("INSERT INTO `tab_clients` (`id`, `nom`, `prenom`, `naissance`, `ville`, `datenreg`) VALUES (:param1, :param2, :param3, :param4, :param5, :param6)");
     
    			$ins->bindParam('param1', $id);
    			$ins->bindParam('param2', $nom);
    			$ins->bindParam('param3', $prenom);
    			$ins->bindParam('param4', $naissance);
    			$ins->bindParam('param5', $ville);
    			$ins->bindParam('param6', $datenreg);
     
    			$ins->execute();
    		}
    		catch ( Exception $e ) {
    			echo "Une erreur est survenue dans la requète insert : ", $e->getMessage();
    			die();
    		}
    	}
    }
    ?>
     
    <table>
    <tr><th>ID</th><th>NOM</th><th>PRENOM</th><th>DATE DE NAISSANCE</th><th>VILLE</th><th>DATE ENREGISTREMENT</th></tr>
     
    <?php
    /*------------------------------*/
    /* Vidage de la table 'clients' */
    /*------------------------------*/
     
    $requete2 = "SELECT * FROM tab_clients";
     
    try {
    	$sql2  = $link->query($requete2);
     
    	while ($enreg = $sql2->fetch(PDO::FETCH_OBJ))
    	{
    		echo "<tr><td>$enreg->id</td>";
    		echo     "<td>$enreg->nom</td>";
    		echo     "<td>$enreg->prenom</td>";
    		echo     "<td>$enreg->naissance</td>";
    		echo     "<td>$enreg->ville</td>";
    		echo     "<td>$enreg->datenreg</td></tr>";
    	}
     
    	$sql2->closeCursor();
    }
    catch ( Exception $e )
    {
    	echo "Une erreur est survenue dans la requète select 2 : ", $e->getMessage();
    	die();
    }
     
    require_once("MySql_Out.php");
    ?>
    </table>
     
    <?php
     
    /*------------------*/
    /* Message d'erreur */
    /*------------------*/
     
    if ($reponse != "")
    	echo "<div id=\"reponse\">$reponse</div>";
    ?>
    </body>
    </html>
    On décortique le script php.

    1) ce fichier se nomme "add.php". Je l'ai placé dans un répertoire de nom "php". C'est mon organisation dans ce projet.

    2) la première des choses à faire est de récupérer les champs du formulaire.

    3) je recherche la plus grande valeur du id dans ma table.

    4) je formate la date et l'heure du jour de la saisie.

    5) j'insère les champs de mon formulaire dans une ligne de la table MySql. Je lui donne le max(id) + 1.

    6) je crée un tableau afin de présenter les résultats.

    7) je fais le vidage de ma table client.

    8)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once("MySql_In.php");
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once("MySql_Out.php");
    sont l'équivalent d'une ouverture et une fermeture de l'accès à la base de données.
    Pour l"ouverture, vous l'avez déjà. Pour la fermeture, c'est juste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    /*-------------*/
    /* Déconnexion */
    /*-------------*/
     
    $link = null;
     
    ?>
    Avec d'autres extension (autre que PDO), il est nécessaire d'utiliser une fonction de fermeture.

    9) que se passe-t-il lorsque vous cliquez sur le bouton "envoyez" du formulaire ?
    Il va exécuter le code du script "add.php", en créant une nouvelle page html.
    Il va présenter un tableau du contenu de votre table mysql, avec bien sûr, la dernière saisie que vous avez faite.

    Normalement, on a débordé du cadre du sujet consacré à MySql.
    Si vous avez des questions n'hésitez pas. Je reste à votre disposition pour les problèmes que vous rencontrerez.

    @+

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    5) j'insère les champs de mon formulaire dans une ligne de la table MySql. Je lui donne le max(id) + 1.
    J'ai mis dans ma table l'id avec auto-increment, pas besoin de rechercher le max ID et de lui donner +1 ?
    Nom : Capture.PNG
Affichages : 186
Taille : 57,1 Ko

  8. #8
    Invité
    Invité(e)
    Par défaut
    J'ai copié votre code en l'adaptant mais une erreur est apparue : Nom : Capture.PNG
Affichages : 185
Taille : 89,3 Ko
    comment la résoudre ?

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 623
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par Titaii2 Voir le message
    J'ai mis dans ma table l'id avec auto-increment, pas besoin de rechercher le max ID et de lui donner +1 ?
    Nom : Capture.PNG
Affichages : 186
Taille : 57,1 Ko
    Non, ce n'est pas nécessaire, comme son nom l'indique, une colonne en auto-incrément affecte toute seule la nouvelle valeur
    Par contre, je vois ci dessus que :
    - vous avez, pour votre clef primaire, non seulement la colonne autoincrémentée, mais aussi 3 autres colonnes.
    Il faut définir votre clef primaire uniquement sur la colonne autoincrémentée. Les 3 autres peuvent, si vous le souhaitez, constituer un autre valeur de clef (unique ou pas, à vous de le vérifier)
    - vous avez défini une colonne qui s'appelle date et qui est de type varchar
    N'utilisez jamais de mot réservé pour définir vos noms d'objet (table, colonne, vue....), remplacez donc le nom date par datedebut par exemple
    N'utilisez jamais de format non date pour contenir une date, un format date permet un contrôle automatique par le SGBD de la qualité d'une date, mais aussi les fonction de tri que vous ne pourrez pas faire avec d'autres formats

    Citation Envoyé par Titaii2 Voir le message
    J'ai copié votre code en l'adaptant mais une erreur est apparue : Nom : Capture.PNG
Affichages : 185
Taille : 89,3 Ko
    comment la résoudre ?
    Une colonne not null doit obligatoirement être fournie lors d'un insert, sauf si elle a une valeur par défaut (not null with default)

  10. #10
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 899
    Par défaut
    Salut titaii2.

    Ce que je vous ai donné correspond à votre demande. A savoir un exemple de formulaire, et un exemple d'insertion et de vidage de votre table.

    Citation Envoyé par titaii2
    je voudrais ainsi récupérer ces données et les insérer dans une nouvelle ligne (créée au même moment dans le tableau vide que vous pouvez voir dans l'image précédente).
    J'ai répondu à votre problématique ! Ou alors, je ne comprends pas votre demande.

    Avez-vous testé ce que je vous ai donné ? Je suis là pour vous aider et non pour faire le travail avec votre place.

    @+

  11. #11
    Invité
    Invité(e)
    Par défaut
    C'était juste pour vous répondre :
    9) que se passe-t-il lorsque vous cliquez sur le bouton "envoyez" du formulaire ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Par contre ce que je ne comprend pas c'est la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <table>
    <tr><th>ID</th><th>NOM</th><th>PRENOM</th><th>DATE DE NAISSANCE</th><th>VILLE</th><th>DATE ENREGISTREMENT</th></tr>
    Cette ligne ne va t elle pas créer un nouveau tableau à chaque nouvelle entrée des formulaires. Si oui, alors cela ne résout pas mon problème, je ne veut pas créer un tableau à chaque fois mais créer une nouvelle ligne dans un même tableau. Est-ce que je me trompe ?

  13. #13
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 899
    Par défaut
    Salut titaii2.

    Vous n'avez pas testé mon code.

    Citation Envoyé par titaii2
    Cette ligne ne va t elle pas créer un nouveau tableau à chaque nouvelle entrée des formulaires.
    Quand vous accédez à votre page html, il vous affiche un formulaire.
    Si vous cliquez sur envoyez, il va exécuter le script php de nom "add.php".
    Ce script vous affiche une nouvelle page contenant un tableau, qui est le vidage de votre table MySql.

    Citation Envoyé par titaii2
    Si oui, alors cela ne résout pas mon problème, je ne veux pas créer un tableau à chaque fois mais créer une nouvelle ligne dans un même tableau.
    Il vous faut bien un tableau pour afficher le contenu de votre table MySql.
    Quand voulez-vous l'obtenir ce tableau ? C'est bien après la validation de votre formulaire.

    Dans votre exemple, votre problème est que vous affichez un tableau vide avant d'avoir saisie le formulaire.
    Vous devez afficher le tableau, après avoir fait la saisie dans votre formulaire et après avoir cliquez sur le bouton "envoyez".
    Mais pas avant !

    Citation Envoyé par titaii2
    Est-ce que je me trompe ?
    Ce que je vous ai donné, c'est pour vous en inspirer. C'est à vous de faire les adaptations nécessaire pour obtenir ce que vous désirez.

    @+

  14. #14
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 899
    Par défaut
    Salut titaii2.

    Citation Envoyé par titaii2
    J'ai mis dans ma table l'id avec auto-increment, pas besoin de rechercher le max ID et de lui donner +1 ?
    C'est un vieil exemple que je vous ai donné. Je sais très bien qu'il n'est pas nécessaire de spécifier la valeur d'un auto incrément.

    En ce qui concerne votre problème d'intégrité, vous ne pouvez insérer une valeur dans la table fils que si cette valeur existe déjà dans la table père.
    Un null n'est pas autorisé car dans la table père, il s'agit de la clef primaire.

    @+

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/03/2008, 12h57
  2. Probléme avec une requéte mysql(Oracle 9)
    Par lmkrte dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/03/2007, 22h41
  3. Problème avec une requête MySQL
    Par Downy35 dans le forum Requêtes
    Réponses: 4
    Dernier message: 30/08/2006, 11h09
  4. Réponses: 1
    Dernier message: 28/06/2006, 13h31
  5. Problème avec les requêtes hibernate
    Par joseph_p dans le forum Hibernate
    Réponses: 5
    Dernier message: 04/04/2006, 22h54

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