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 :

Suppresion d'une entrée dans une base de donnée.


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut Suppresion d'une entrée dans une base de donnée.
    Bonjour.

    Voila j'ai un petit probléme avec la supression d'une entree dans la base de donnée.

    Je m'explique.

    Je charge mes entree comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for ($i=0;$i<$rang;$i++)
    { 
    $Software=mysql_result($resultat,$i,"Software");
    $Description=mysql_result($resultat,$i,"Description");
     
    echo"  
    <tr>
        <td width=15%><center>".$Software."</center></td>
    	<td width=70%><center>".$Description."</center></td>
    	<td width=15%><center><input type=checkbox name=software[] value=".$Software."></center><br></td>  
     
    </tr>"
    ;}
    quand je clic sur le bouton delete il me renvoye a la page qui dois me supprimer les entree selectionnee.

    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
    foreach ($_POST["software"] as $Software) 
      {   
     
       // Connecxion au serveur mysql
      $connect=mysql_connect('localhost','root','') or die ("Erreur de connexion avec le serveur Mysql.");		
     
      // Connexion a la base de donnée : bdd1
      mysql_select_db('Softlist',$connect) or die ("Erreur de connexion a la base de donnée.");
     
      // verification si le nom est deja pris et insertion des données dans la base de donnée
      $Resultat=mysql_query("SELECT * FROM `software` WHERE `software` LIKE '$Software'");
      if (mysql_numrows($Resultat)==1)
      {	
        echo "ok";
      	$sql=mysql_query("DELETE FROM `software` WHERE software='$Software'"); 
     	}
     
      // Fermeture de la base de donnée
      mysql_close($connect);
     
     
    }
    Ca marche oui mais... le problémes et que si j'ai un nom avec un espace comme "bonjour toi" il ne veut pas me supprimer l'entree.

    y a t il une astuce pour remédier a cela ?

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    je profite de ce post pour poser une sous-question :

    comment peut on faire un "else" avec la fonction foreach ?

    j'aimerais que si il ne rentre pas dans la boucle qu'il me fasse une autre fonction ... es ce possible ?

    merci

    j'ai essayer avec un else mais ca ne marche pas....

  3. #3
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut
    Peut être que tu devrai plutot travailler avec des identifiants

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Resultat=mysql_query("SELECT * FROM `software` WHERE `software_id`=".$Software_id);

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    tu veux dire rajouter une collone dans ma bd avec le n° du soft ?

  5. #5
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut
    Oui ainsi tu na plus qu'a faire un delete et plus un select de verification suivi d'un delete

    EDIT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("DELETE FROM `software` WHERE software_id=".$Software_id.");

  6. #6
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    Pour la sous question ..

    NON ... A ma connaissance tu peux pas associer un foreach() qui parcours un tableau avec un else ...

    C'est synthaxiquement incompatible ... et un peu incohérent ...

    Soit tu flags le passage dans ta boucle et tu test ton fag après ...
    Soit tu entre dans ta boucle que si (...) et tu fais ton else apres ...

    Soit tu vas voir dans la taverne du forum si le développeur de l'APH ne peut pas implémenter ca dans son code ... ;-)

    [ Comprenne qui pourra ]

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Soit tu flags le passage dans ta boucle et tu test ton fag après ...
    de quekl boucle parle tu ?

    cele dans la page 1 ou celle du bouton ?

  8. #8
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    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
     
    for ($i=0;$i<$rang;$i++) 
    { 
    $Software=mysql_result($resultat,$i,"Software"); 
    $Description=mysql_result($resultat,$i,"Description"); 
     
    echo'  
    <tr> 
        <td width=15%><center>".$Software."</center></td> 
       <td width=70%><center>".$Description."</center></td> 
       <td width=15%><center><input type=checkbox name="software[]" value="'.$Software.'"></center><br></td>  
     
    </tr>'
    ;}

    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
     
     
     // Connecxion au serveur mysql 
      $connect=mysql_connect('localhost','root','') or die ("Erreur de connexion avec le serveur Mysql.");       
     
      // Connexion a la base de donnée : bdd1 
      mysql_select_db('Softlist',$connect) or die ("Erreur de connexion a la base de donnée."); 
     
    foreach ($_POST["software"] as $Software) 
      {    
     
     
     
      // verification si le nom est deja pris et insertion des données dans la base de donnée 
      $Resultat=mysql_query("SELECT * FROM `software` WHERE `software` LIKE '$Software'"); 
      if (mysql_numrows($Resultat)==1) 
      {    
        echo "ok"; 
         $sql=mysql_query("DELETE FROM `software` WHERE software='$Software'"); 
        }         
    }
     
    // Fermeture de la base de donnée 
      mysql_close($connect);
    Sa devrait être bon.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    pour la suppresion c'est oki.

    le prob viens de la sous question.

    donc je charge mes vleurs comme ceci :

    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
    <?
    // Connecxion au serveur mysql
    $connect=mysql_connect('localhost','root','') or die ("Erreur de connexion avec le serveur Mysql.");		
     
    // Connexion a la base de donnée : Softlist
    mysql_select_db('softlist',$connect) or die ("Erreur de connexion a la base de donnée.");
     
    $select="SELECT * FROM `t_software`";
    $resultat=mysql_query("$select;");
    $rang=mysql_num_rows($resultat);
     
    for ($i=0;$i<$rang;$i++)
    {
    $Software_id=mysql_result($resultat,$i,"Software_id"); 
    $Software=mysql_result($resultat,$i,"Software");
    $Description=mysql_result($resultat,$i,"Description");
     
    echo"  
    <tr> 
        <td width=10%><center>".($i+1)."</center></td> 
        <td width=15%><center>".$Software."</center></td>
    	<td width=70%><center>".$Description."</center></td>
    	<td width=5%><center><input type=checkbox name=software_id[] value=".$Software_id."></center><br></td>  
    	
    </tr>"
    ;}
     
    ?>
    et j'affiche comme ceci

    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
    <?
     
    foreach ($_POST["software_id"] as $Software_id2)
      {   
     
       // Connecxion au serveur mysql
      $connect=mysql_connect('localhost','root','') or die ("Erreur de connexion avec le serveur Mysql.");		
     
      // Connexion a la base de donnée : softlist
      mysql_select_db('softlist',$connect) or die ("Erreur de connexion a la base de donnée.");
     
      $reponse = mysql_query("SELECT Software, Description FROM t_software WHERE Software_id='$Software_id2'");
      $donnees = mysql_fetch_array($reponse);
      $Software = $donnees['Software'];
      $Description = $donnees['Description'];
     
       echo "$Software_id2,$Software,$Description";
     
     
       }

  10. #10
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    la fonction foreach() utilise un tableau pour faire une boucle. => la boucle s'effectuera obligatoirement si le tableau est valide . Pourquoi l'intêret d'un else? Peux tu etre plus explicite sur ce que tu veux faire?

    nb: D'autre part hisy a répondu à ta sous question.

  11. #11
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    salut,

    pour sortir d'une boucle, tu peux utiliser break;

    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
     
    <html>
    <head><title>test</title></head>
    <body>
    <h1>test</h1>
    <ul>
    <?php
    $tab=array("1","2","3","4","5");
     
    foreach ($tab as $item) {
       echo "\t<li>$item</li>\n";
     
       if($item == "3") {
          echo "\t<li>c'est 3 je sors !</li>\n";
          break;
       }
     
    }
    ?>
    </ul>
    <h2>fin du script.</h2>
     
    </body>
    </html>


Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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