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 :

Requête SQL avec PHP5 [Ajout,Suppression,Modifier]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut Requête SQL avec PHP5 [Ajout,Suppression,Modifier]
    Bonsoir,

    J'ai bien cherché dans le cours de ce Forum sur PHP5 et la manipulation des requêtes avec MYSQL

    J'ai commencé par simple exemple qui contient 2 pages : première saisie information et la deuxième contient les requêtes de sélection, ajout, suppression et modification avec PHP5
    Voici mon essai ou est mes erreurs :

    Page1:
    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
     
    <!DOCTYPE html>
    <html>
    <head><meta charset="UTF-8"></head>
    <body>
     <h1> Ajouter Adhérent </h1>
     <form action="conexion.php" method="POST">
    		<table border="1">		
    		<tr>		
    			<td>Nom_User : </td>
    			<td><input type="text" name="login" /> <br> </td>
    		</tr>
    		<tr>		
    			<td>PWD : </td>
    			<td><input type="password" name="pwd" /> <br> </td>
    		</tr>		
     
    	    <tr> <td colspan="2" align="center"><input type="submit" value="Ajouter" /> </td></tr>
    		</table>
    	</form>
     
    </body>
    </html>

    Page2
    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
     
    <?php
    //Connexion à la base 
    $db = new PDO('mysql:host=localhost;dbname=media_bd','root','');
    //Requete de sélection
    $sql = 'SELECT login, pwd FROM utilisateur';
    //affichage résultat
    $select_messages = $db->prepare($sql);
    $select_messages->setFetchMode(PDO::FETCH_ASSOC);
    $select_messages->execute();
    header('Content-Type: text/html; charset=utf-8');
    foreach($select_messages->fetchAll() as $message)
    {
        echo utf8_encode(htmlspecialchars(
            $message['login'].' ---- '.$message['pwd'], ENT_QUOTES)).'<br/>';
    }
     
    //Requete d'ajout
    $sql='INSERT INTO utilisateur(login, pwd) VALUES('. $_POST['login'].',rrrrr)';
    $insert_user = $db->prepare($sql);
    $insert_user->execute();
    //Requete update
    $sql='UPDATE ';
     
    ?>
    Où se situe ma faute

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    il faut mettre un paramètre et pas directement la valeur venant du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql='INSERT INTO utilisateur(login, pwd) VALUES(:login,"rrrrr")';
    $insert_user = $db->prepare($sql);
    $insert_user->execute(array(':login'=>$_POST['login']));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    est ce que meme cas pour update??

  4. #4
    Membre du Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Septembre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant en Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    C'est pareil pour un update

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    voici ma requete d'ajout mais comme meme elle ne marche pas est ce que je dois utiliser les tableaux associatifs?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Connexion à la base 
    $db = new PDO('mysql:host=localhost;dbname=media_bd','root','');
    echo $_POST['cin']."<br>";
    echo $_POST['nom']."<br>";
    echo $_POST['prenom']."<br>";
    echo $_POST['email']."<br>";
    array(':cin'=>$_POST['cin'],':nom'=>$_POST['nom'],':prenom'=>$_POST['prenom'],':email'=>$_POST['email']);
    //Requete d'ajout
    $sql="INSERT INTO adherent(cin,nom,prenom,email)VALUES(".':cin'.",".':nom'.",".':prenom'.",".':email'.")";
    $insert_a = $db->prepare($sql);
    $insert_a->execute();
    ou je fais seulement


  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //Requete d'ajout
    $sql="INSERT INTO adherent(cin,nom,prenom,email) VALUES (:cin, :nom, :prenom, :email)";
    $insert_a = $db->prepare($sql);
    $insert_a->execute(array(':cin'=>$_POST['cin'],':nom'=>$_POST['nom'],':prenom'=>$_POST['prenom'],':email'=>$_POST['email']));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Octobre 2014
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2014
    Messages : 135
    Points : 39
    Points
    39
    Par défaut
    Bonjour à tous,

    voici la structure de ma base de donnée qui contient la table livre
    Nom : contenu_base.png
Affichages : 2912
Taille : 42,3 Ko
    voici le code des 3 pages connexion.php
    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 
    //Connexion à la base 
    //Data Source Name DSN contient les informations requises pour se connecter à la base (nom base + localhost)
    $dsn = 'mysql:dbname=test;host=127.0.0.1';
    $username='root';
    $pwd='';
     
    try 
    {
        $dbh = new PDO($dsn, $username, $pwd);
    }
     catch (PDOException $e)
    {
        echo 'Connexion échouée : ' . $e->getMessage();
    }
    ?>

    ajoutmedia.php
    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
     
    <html>
    <head>
    	<meta charset="utf-8" />
    	<link rel="stylesheet" href="style_text.css" />
    	<title> Média </title>
     </head>
    <body>
    	<form action="livre.class.php" method="POST">
    	<?php if( !isset($_GET['type']) or (isset($_GET['type']) && $_GET['type']=='livre')) { ?>
    		<fieldset>
    		   	<legend> Livre </legend>
    			<table border="1">
    			<tr> <td><label> Titre :</label></td>      <td><input type="text" name="titre" required>       </td></tr>
    			<tr> <td><label> Auteur :</label></td>     <td><input type="text" name="auteur"required>       </td></tr>
    			<tr> <td><label> Collection :</label></td> <td><input type="text" name="collection"required>   </td></tr>
    			<tr> <td><label> Résumé :</label></td>     <td><input type="text" name="resume" required>      </td></tr>
    			<tr> <td><label> Genre :</label> </td>     <td><input type="text" name="genre" required>       </td></tr>
    			<tr> <td><label> Nombre de pages :</label></td> <td><input type="number" name="nb" required>   </td></tr>
    			<tr> <td colspan="2" align="center"><input type="submit" value="valider"></td> </tr>
    			</table>
    		</fieldset>		
    <?php } elseif( isset($_GET['type']) && $_GET['type']=='fichier') { ?>
    		<fieldset>
    		   	<legend> Fichier </legend>
    			<table border="1">
    				<tr> <td><label> Titre :</label></td>    <td><input type="text" name="titre" required> </td></tr>
    				<tr> <td><label> Auteur :</label></td>   <td><input type="text" name="auteur" required> </td></tr>
    				<tr> <td><label> Type :</label></td>     <td><select> <option name="extension" selected> PDF</option>
    																	  <option> DOC</option>
    																	  <option> PPT</option>
    																	  <option> XLS</option>
    																	  <option> IMAGE</option>
    																	  <option> SON</option>
    															</select></td> </tr>
    				<tr> <td><label> Taille :</label></td>   <td><input type="text" name="taille" required>  </td></tr>
    				<tr> <td><label> URL :</label> </td>     <td><input type="url" name="url" required>      </td></tr>
    				<tr> <td colspan="2" align="center"><input type="submit" value="valider">                 </td></tr>
    			</table>
    		</fieldset>				
    		<?php } elseif( isset($_GET['type']) && $_GET['type']=='support') { ?>
    		<fieldset>
    		   	<legend> Support </legend>
    			<table border="1">
    			<tr> <td><label> Titre :</label></td>    <td><input type="text" required > </td> </tr>
    			<tr> <td><label> Auteur :</label></td>   <td><input type="text" required ></td> </tr>
    			<tr> <td><label> Type :</label></td>     <td><select> <option name="extension" selected> CD</option>
    																	  <option> DVD</option>
    																	  <option> Cassette VHS</option> 
    															 </select></td> </tr>
    			<tr> <td><label> Durée :</label></td>            <td><input type="number" name="duree"required></td></tr>
    			<tr> <td><label> Date Création:</label></td>     <td><input type="date" name="date"required></td></tr>
    			<tr> <td><label> Maison de production :</label></td> <td><input type="text" name="MP"required></td></tr>
    			<tr> <td colspan="2" align="center"><input type="submit" value="valider"></td> </tr>
    			</table>
    		</fieldset>	
    <?php } ?>
    	</form>
    </body>
    </html>
    et livre.class.php
    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
     
    <?php 
    class Livre
    {
    	//attribut
    	public $titre;
    	public $auteur;
    	public $collection;
    	public $genre;
    	public $resume;
    	public $nb_exp;
    	public $nb_disp;
    	//constructeur
    	function _construct($titre,$auteur,$collection,$genre,$resume,$nb_exp,$nb_disp)
    	{
    		$this->titre =$titre;
    		$this->auteur=$auteur;
    		$this->collection=$collection;
    		$this->genre=$genre;
    		$this->resume=$resume;
    		$this->nb_exp=$nb_exp;
    		$this->nb_disp=$nb_disp;
    	}
    	//Fonction
    	public function ajouter()
    	{
    		require_once("connexion.php");
    		$sql="insert into livre values(".$this->titre.",".$this->auteur.",".$this->collection.",".$this->genre.",".$this->resume.",".$this->nb_exp.",".$this->nb_disp.")";
    		mysql_query($sql) or die ("erreur sql !!".$sql.mysql_error());
    	}
    	$obj=new livre($titre,$auteur,$collection,$genre,$resume,$nb_exp,$nb_disp);
    	$obj->ajouter();
    }
    ?>

    dans ma classe Livre y a la requête d'insertion
    lors de l’exécution avec Wampserver la page s'affiche vide et lorsque je vérifie dans la table
    mais ca change pas il reste une seule ligne dans la table

    Où se situe mon erreur ?

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne viens pas de te montrer comment faire au requête d'insertion en PDO ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. requête sql avec clause INNER JOIN
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/08/2005, 15h47
  2. Requête SQL avec une réponse unique
    Par Glutinus dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/07/2005, 16h35
  3. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  4. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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