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 delete et formulaire


Sujet :

PHP & Base de données

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut Requête delete et 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
    <?php
    // On commence par récupérer les champs
     
    if(isset($_POST['id'])) $id=intval($_POST['id']);
     
    if(isset($_POST['Titre']))      $Titre=$_POST['Titre'];
    else      $Titre="";
     
    if(isset($_POST['Nom']))      $Nom=$_POST['Nom'];
    else      $Nom="";
     
    if(isset($_POST['Prenom']))      $Prenom=$_POST['Prenom'];
    else      $Prenom="";
     
    if(isset($_POST['Adresse']))      $Adresse=$_POST['Adresse'];
    else      $Adresse="";
     
    if(isset($_POST['CP']))      $CP=$_POST['CP'];
    else      $CP="";
     
    if(isset($_POST['Ville']))      $Ville=$_POST['Ville'];
    else      $Ville="";
     
    if(isset($_POST['Telephone']))      $Telephone=$_POST['Telephone'];
    else      $Telephone="";
     
    if(isset($_POST['Projet']))      $Projet=$_POST['Projet'];
    else      $Projet="";
     
    if(isset($_POST['Date1']))      $Date1=$_POST['Date1'];
    else      $Date1="";
     
    if(isset($_POST['Structure1']))      $Structure1=$_POST['Structure1'];
    else      $Structure1="";
     
    if(isset($_POST['Conseiller1']))      $Conseiller1=$_POST['Conseiller1'];
    else      $Conseiller1="";
     
    if(isset($_POST['Accompagnement1']))      $Accompagnement1=$_POST['Accompagnement1'];
    else      $Accompagnement1="";
     
    if(isset($_POST['Date2']))      $Date2=$_POST['Date2'];
    else      $Date2="";
     
    if(isset($_POST['Structure2']))      $Structure2=$_POST['Structure2'];
    else      $Structure2="";
     
    if(isset($_POST['Conseiller2']))      $Conseiller2=$_POST['Conseiller2'];
    else      $Conseiller2="";
     
    if(isset($_POST['Accompagnement2']))      $Accompagnement2=$_POST['Accompagnement2'];
    else      $Accompagnement2="";
     
    if(isset($_POST['Date3']))      $Date3=$_POST['Date3'];
    else      $Date3="";
     
    if(isset($_POST['Conseiller3']))      $Conseiller3=$_POST['Conseiller3'];
    else      $Conseiller3="";
     
    if(isset($_POST['Structure3']))      $Structure3=$_POST['Structure3'];
    else      $Structure3="";
     
    if(isset($_POST['Accompagnement3']))      $Accompagnement3=$_POST['Accompagnement3'];
    else      $Accompagnement3="";
     
    // on se connecte à notre base  
    $base = mysql_connect ('sql.free.fr', '***', '***');  
    mysql_select_db ('createurs', $base) ;  
    ?>
     
    <?php
     
    // lancement de la requête pour un enregistrement  
     $sql ="DELETE from createurs WHERE id='$id'";  
     
      // on exécute la requête 
     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());  
     
     echo $sql
     // on ferme la connexion à la base  
     mysql_close();  
     ?>
    </body>
    </html>
    Je souhaite juste ajouter un bouton supprimer pour effacer la ligne entière dans ma base sql mais, visiblement ca passe pas :

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /mnt/166/sdb/8/9/redwarf401/creation/delete.php on line 21

    Si quelqu'un pouvait m'aider.

    Merci

  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
    Par défaut
    il manque un ; apres echo $sql

    Sinon ca sert a quoi de recuperer tous les champs puisque tu n'utilises que l'id ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par redwarf Voir le message
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /mnt/166/sdb/8/9/redwarf401/creation/delete.php on line 21
    L'erreur est à la ligne 21.
    La 21ème ligne de l'extrait que tu nous donnes ne semble pas comporter d'erreur mais est-ce la 21ème ligne du programme 'delete.php' ?

    Si tu utilises un éditeur intelligent tel qu'Eclipse, il te dira plus précisément sur quelle ligne est l'erreur.

    Edit : Bravo Sabotage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    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
    Par défaut
    Oui je n'ai pas compris non plus car l'erreur s'affiche a la ligne 81 chez moi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut
    Bien vu, je vais aller me cacher maintenant.

    Merci

    Enfin l'echo était la pour savoir si tout va bien :

    DELETE from createurs WHERE id=''

    Donc il ne trouve pas "id"

    pourtant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['id'])) $id=intval($_POST['id']);

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut
    Citation Envoyé par sabotage Voir le message
    il manque un ; apres echo $sql

    Sinon ca sert a quoi de recuperer tous les champs puisque tu n'utilises que l'id ?
    en fait je sais pas si je pouvais effacer toute les entrées avec l'id du coup j'ai tout mis si jamais il fallait effacer les données champs par champs.

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par redwarf Voir le message
    DELETE from createurs WHERE id=''

    Donc il ne trouve pas "id"

    pourtant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['id'])) $id=intval($_POST['id']);
    Peut-être que la valeur de $id est vraiment une chaîne vide et pas rien. Dans ce cas isset retourne TRUE et la condition est satisfaite.
    Tu peux ajouter le test pour la chaîne vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['id']) || $_POST['id'] == '' ) $id=intval($_POST['id']);
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE from createurs WHERE id='0'
    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
    <?php
    // On commence par récupérer les champs
     
    if(isset($_POST['id']) || $_POST['id'] == '' ) $id=intval($_POST['id']);
     
    // on se connecte à notre base  
    $base = mysql_connect ('sql.free.fr', '******', '****');  
    mysql_select_db ('createurs', $base) ;  
    ?>
     
    <?php
     
    // lancement de la requête pour un enregistrement  
     $sql ="DELETE from createurs WHERE id='$id'";  
     
      // on exécute la requête 
     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());  
     
     echo $sql;
     // on ferme la connexion à la base  
     mysql_close();  
     ?>
    </body>
    </html>

  9. #9
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    D'où il sort ce 0 ? De la fonction intval sur une chaîne de caractères vide ?
    Apparemment tu as plutôt un problème dans la récupération de l'id on dirait...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    D'où il sort ce 0 ? De la fonction intval sur une chaîne de caractères vide ?
    Apparemment tu as plutôt un problème dans la récupération de l'id on dirait...
    en fait le "0" c'est le retour de l'echo !

    Donc effectivement j'ai un soucis de récup id, mais je me demande si c'est pas mon bouton supprimer qui ne passe pas par un <form action=delete.php

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
       <head>
     
            <title>Formulaire</title>
     
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <meta http-equiv="Content-Language" content="fr" />
               <meta http-equiv="Content-Script-Type" content="text/javascript" />
               <meta http-equiv="Content-Style-Type" content="text/css" />
            <meta name="DC.Language" scheme="RFC3066" content="fr" />
     
            <link rel="stylesheet" href="style.css" type="text/css" media="screen" title="Normal" />
     
            <style type="text/css">
    <!--
    .Style1 {font-family: Arial, Helvetica, sans-serif}
    .Style3 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; }
    -->
            </style>
    </head>
    <body>
    <div id="global">
    	<div id="header">
    		<h1>Titre de votre site</h1><!--Modifier par le nom de votre site et laisser pour l'accessibilité -->
     
    		<ul>
    			<li><a href="index.php">Accueil</a></li>
    			<li><a href="formulaire.html">Nouveau</a></li>
    			<li><a href="voirformulaire.php">Consulter la Base </a></li>
    			<li><a href="exporter.php">Exporter sous excel</a></li>
    			<li><a href="contact.html">Contact</a></li>
    		</ul>
     
      </div>
    <?php
      mysql_connect("sql.free.fr", "*****", "****"); // Connexion à MySQL
      mysql_select_db("createurs"); // Sélection de la base 
     
      // Test pour savoir si le paramètre a été passé et
      // le récupérer
      echo '<input name="id" value="' . $i . '" type="hidden" />';
       if(isset($_GET['i'])) {
        $i = $_GET['i'];
      } else {
        $i = 1;
      } 
     
      // Requête SQL
      $reponse = mysql_query("SELECT * FROM createurs where id = '$i'");
      // Code permettant de connaitre le nombre d'enregistrements
    $__query = "SELECT COUNT(*) FROM createurs";
    $__result = mysql_query($__query);
    $row = mysql_fetch_row($__result);
    $nb_tot = $row[0];
     // suivant*/précédent 
     $suiv = $i+1;
      $prec = $i-1;
     
      //supprimer
      $delete = "delete * from createurs where stage = $stage";
     
    // ON fait une boucle pour lister tout ce que contient la TABLE :
     
    while ($donnees = mysql_fetch_array($reponse) )
    {
     
     
    ?>   
      <div id="contenu">
    	  <h2><form action="update.php" method="post" name="Accompagnement">
    	    <p><span class="Style1"><span class="Style7">Identification du cr&eacute;ateur </span>&nbsp;</span><span class="Style8">&nbsp;</span>&nbsp;</p>
    <input name="id" value="<?php echo $donnees['id']; ?>" size="3" />
    <input name="Titre" value="<?php echo $donnees['Titre']; ?>" />
    <input name="Nom" value="<?php echo $donnees['Nom']; ?>" />
    <input name="Prenom" value="<?php echo $donnees['Prenom']; ?>" />
    <input size="80" name="Adresse" value="<?php echo $donnees['Adresse']; ?>" />
    <input name="CP" value="<?php echo $donnees['CP']; ?>" size="30" />
    <input size="30" name="Ville" value="<?php echo $donnees['Ville']; ?>" />
    <input size="20" name="Telephone" value="<?php echo $donnees['Telephone']; ?>" />
    <p><span class="Style1">Projet </span></p>
    <textarea name="Projet" cols="80" rows="3"><?php echo $donnees['Projet']; ?></textarea>
    <p><span class="Style5">Accompagnement / Orientation</span><br /></p>
     
    <input value="<?php echo $donnees['Date1']; ?>" name="Date1" size="10" />
    <input value="<?php echo $donnees['Conseiller1']; ?>" name="Conseiller1" />
    <input name="Structure1" value="<?php echo $donnees['Structure1']; ?>" size="30" />
    <textarea name="Accompagnement1" cols="80"><?php echo $donnees['Accompagnement1']; ?></textarea>
     
    <input value="<?php echo $donnees['Date2']; ?>" name="Date2" size="10" />
    <input value="<?php echo $donnees['Conseiller2']; ?>" name="Conseiller2" />
    <input name="Structure2" value="<?php echo $donnees['Structure2']; ?>" size="30" />  <br />
    <textarea name="Accompagnement2" cols="80"><?php echo $donnees['Accompagnement2']; ?></textarea>
     
    <input value="<?php echo $donnees['Date3']; ?>" name="Date3" size="10" />
    <input value="<?php echo $donnees['Conseiller3']; ?>" name="Conseiller3" />
    <input name="Structure3" value="S<?php echo $donnees['Structure3']; ?>" size="30" />
    <textarea name="Accompagnement3" cols="80"><?php echo $donnees['Accompagnement3']; ?></textarea>
    <input name="Modifier" value="Modifier" type="submit" />
      <input name="Supprimer" type="button" onclick="delete.php" value="Supprimer" />
      <a href="delete.php">1</a>
    	  </form>
    </p>
    	<p align="right">
     
     
    	  </h2>
          <h2 align="center"> 
    	    <span class="Style3">
    	  <?php 
        if ($i > 1 ) 
          echo "<a href=\"http://redwarf401.free.fr/creation/voirformulaire?i=$prec\">Précédent</a>";
      }?>
    	  <?php
    // Code permettant de masquer le bouton "Suivant"
    if ($i < $nb_tot) {
      echo "<a href=\"http://redwarf401.free.fr/creation/voirformulaire.php?i=$suiv\">Suivant</a>";
    }?>
    	    </span>	  </h2>
      </div>
      </form>
    	<div id="footer">
    		<p>&nbsp;</p>
    	</div>
    </div>
     
    <?php 
     
    mysql_close(); // Déconnexion de MySQL
    ?>
    </body></html>
    </body>
    </html>
    Voila le problème j'ai fait un formulaire qui renvoie vers "update.php"
    Quand je le remplace par "delete.php" ca supprime c'est ok.

    Ma question va être comment rajouter un deuxième bouton ! pour faire marcher update et delete.

    Je suis pas forcement très clair, et comme je suis débutant c'est pas évident.

Discussions similaires

  1. pb requête delete/update avec opérateur like, connexion ADO
    Par jerome666 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/02/2006, 16h47
  2. Réponses: 1
    Dernier message: 28/01/2006, 17h39
  3. Requête DELETE problème de WHERE ... ???
    Par snoopy69 dans le forum Access
    Réponses: 4
    Dernier message: 21/11/2005, 11h19
  4. problème de requète SQL pour formulaire
    Par en_stage dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2005, 12h21
  5. [requête] DELETE + SELECT
    Par doohan dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/07/2003, 12h27

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