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 :

Écriture requête SQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmarketer
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut Écriture requête SQL
    Bonjour,
    j'essaye de construire une requete SQL pour inserer des données dans une page.
    voici le code de ma 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
    <?php echo $_POST['var1']; ?><br/>
    <?php echo $_POST['var3']; ?><br/>
    <?php
    	$joueur1 = $_POST['var1'];
    	$nom1 = $_POST['var3'];
    	echo $joueur1;
    	echo $nom1;
    	try
    		{
    			$bdd = new PDO('mysql:host=sql-01.proxgroup.fr:3306;dbname=champard_tarot;charset=utf8', 'cccccc', 'ccccccc');
    		}
    	catch (Exception $e)
    		{
    			die('Erreur : ' . $e->getMessage());
    		}
    			$reponse = 	$bdd->prepare(INSERT INTO test (joueur_1, j1_nom) VALUES (joueur1, nom1) );
    			$reponse ->execute(['joueur1'=> $joueur1, 'nom1' => $nom1]);
    		{
    		?>
    		<?php
    		}
    	$reponse->closeCursor();		
    ?>
    or, j'obtiens une page blanche.
    j'ai du faire une erreur dans l'écriture de ma requête, mais je n'arrive pas a trouver laquelle.

    merci d'avance de m'aider.

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    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 511
    Par défaut
    Bonjour,

    Corrigez les lignes 16 et 17 comme suite :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reponse=$bdd->prepare("INSERT INTO test (joueur_1, j1_nom) VALUES (:joueur1, :nom1)");
    $reponse ->execute([':joueur1'=> $joueur1, ':nom1' => $nom1]);

    Notez bien les deux points avant les noms des alias.

  3. #3
    Membre averti
    Homme Profil pro
    Webmarketer
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut
    merci pour votre réponse.

    lorsque je change le code j'ai bien l'affichage de la page qui se fait normalement, mais je n'ai aucune insertion de données dans ma base.

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    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 511
    Par défaut
    Bonjour,

    • Activez l'affichage des erreurs/avertissements PHP tout au début de la page avec error_reporting(E_ALL).
    • Vérifiez que les valeurs de $joueur1 et $nom1 sont bien définies.
    • Assurez-vous que les noms de colonnes sont correctes (majuscule et minuscule)

  5. #5
    Membre averti
    Homme Profil pro
    Webmarketer
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmarketer
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Par défaut
    merci de te pencher sur mon problème.
    les valeurs de $joueur1 et $nom1 sont bien définies puisque j'arrive a les afficher.


    voici ma base
    Code SQL : 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
    -- phpMyAdmin SQL Dump
    -- version 5.1.3
    -- https://www.phpmyadmin.net/
    --
    -- Hôte : sql-frweb10.pulseheberg.net:3306
    -- Généré le : mar. 16 août 2022 à 18:01
    -- Version du serveur : 10.4.22-MariaDB-1:10.4.22+maria~focal
    -- Version de PHP : 7.4.29
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    START TRANSACTION;
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
     
    --
    -- Base de données : `champard_tarot`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `test`
    --
     
    CREATE TABLE `test` (
      `joueur_1` int(7) NOT NULL,
      `j1_nom` varchar(30) NOT NULL,
      `id` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    --
    -- Déchargement des données de la table `test`
    --
     
    INSERT INTO `test` (`joueur_1`, `j1_nom`, `id`) VALUES
    (1001619, 'pascal', 1),
    (1001619, 'jules', 2),
    (1001202, 'medina manuel', 3);
     
    --
    -- Index pour les tables déchargées
    --
     
    --
    -- Index pour la table `test`
    --
    ALTER TABLE `test`
      ADD PRIMARY KEY (`id`);
     
    --
    -- AUTO_INCREMENT pour les tables déchargées
    --
     
    --
    -- AUTO_INCREMENT pour la table `test`
    --
    ALTER TABLE `test`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
    COMMIT;
     
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


    et voici le code complet de ma page

    Code html : 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
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8" />
    	<link rel="stylesheet" href="style.css" />
    	<title>le tarot en champagne-ardenne</title>
    	<meta name="nouvelle" content="le tarot en champagne ardenne  , les competitions, les resultats, le calendrier." />
    </head>
    	<body>
    		<?php include ($_SERVER["DOCUMENT_ROOT"].'/entete.php'); ?>
    			<section>	<center>
    		<?php   error_reporting(E_ALL);?>
    			affiche  $_POST['lic_1'] et $_POST['nom_1']:<br/><br/>
    					<?php echo $_POST['lic_1']; ?><br/>
    					<?php echo $_POST['nom_1']; ?><br/>
    					<?php 
                                                    $joueur1 = $_POST['lic_1'];
                                                    $nom1 = $_POST['nom_1'];?><br/>
     
    			affiche  $joueur1 et $nom_1:<br/><br/>					
     
    					<?php 
                                            echo $joueur1;
                                            echo $nom1;
                                                            try
                                                                    {
                                                            $bdd = new PDO('mysql:host=sql-01.proxgroup.fr:3306;dbname=champard_tarot;charset=utf8', 'ccccl', 'cccc!');
                                                                    }
                                                            catch (Exception $e)
                                                                    {
                                                                            die('Erreur : ' . $e->getMessage());
                                                                    }
                                                                            $bdd->prepare("INSERT INTO test (joueur_1, j1_nom) VALUES (:joueur1, :nom1)");
                                                                            $reponse ->execute([':joueur1'=> $joueur1, ':nom1' => $nom1]);
                                                                    {
                                                                    ?>
    								<?php
                                                                    }
                                                            $reponse->closeCursor();                
                                                    ?>
    			</section>
    			<aside>
    				<h3> JOUEURS DEJA INSCRITS</h3>
    				<?php
                                            try
                                                    {
                                                            // acces a la base de données
                                                            $bdd = new PDO('mysql:host=sql-01.proxgroup.fr:3306;dbname=champard_tarot;charset=utf8', 'cccccl', 'cccc!');
                                                    }
                                            catch (Exception $e)
                                                    {
                                                            die('Erreur : ' . $e->getMessage());
                                                    }
                                                                            $reponse = $bdd->query('SELECT championnat, j1_nom, j2_nom,  j3_nom, j4_nom FROM inscriptions where championnat ="quadrettes_d1"');
                                                                    while ($donnees = $reponse->fetch())
                                                                    {
                                                                            ?>
     
    										<article><h3><strong><?php echo $donnees['j1_nom']; ?> * * * <?php echo $donnees['j2_nom']; ?> <br/><?php echo $donnees['j3_nom']; ?> * * * <?php echo $donnees['j4_nom']; ?> </strong> </h3>
    										</article>
    									<?php
                                                                    }
                                                                                    $reponse->closeCursor();                
                                                                            ?>
    				</aside>
    	</body>
    <?php include ($_SERVER["DOCUMENT_ROOT"].'/footer.php'); ?>
    </html>

    et l'adresse de mon site
    http://champardenne-tarot.com/inscription/ins_13.php

    je n'arrive toujours pas a voir ou il pourrait y avoir une erreur. la page s'arrete apres l'affichage des variables

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    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 511
    Par défaut
    Il manque un $reponse= lors de la préparation de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reponse=$bdd->prepare("INSERT INTO test (joueur_1, j1_nom) VALUES (:joueur1, :nom1)");
    $reponse ->execute([':joueur1'=> $joueur1, ':nom1' => $nom1]);

Discussions similaires

  1. [PDO] écriture requête sql pour vérification
    Par XAVIERV dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/12/2021, 16h10
  2. [XL-365] Requête SQL avec écriture dans fichier Excel = trop long
    Par Odissine dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/09/2019, 15h24
  3. Réponses: 13
    Dernier message: 11/02/2010, 18h55
  4. écriture d'une requête SQL en VBA, pb lié à '
    Par Marie_2116 dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/08/2007, 15h43
  5. Requête SQL, problème d'écriture
    Par porci82 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/06/2007, 14h56

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