Page 1 sur 1

Probleme checkbox page SQL PHP

Posté : 06 mars 2007, 21:11
par Jaewon_not_logged
Bonjour,

j'ai un site a faire pour l'école mais vue que je n'ai pas de cours de php je dois trouvez tout moi meme et la je suis coincé alors je vient demande un peu d'aide ici en esperant trouver des reponse.

Voila je vous explique mon probleme.
J'ai une page " http://gip.sava.be/delete_modify_news.php "
Qui crée une liste de toute les news existante dans ma base de donnée tbl_nieuws.

J'aimerais que quand je clique sur part exemple la puce bleu de id "27" que le site sache dire ah La puce bleu qui correspond a la ligne des données avec comme id = 27.
Et va cherchez les données dans la base de données pour pour finir les place dans les textbox correspondant.
Dans la page suivante " http://gip.sava.be/modify_news.php "

Meme chose pour les checkbox, j'aimerais que si je coche une ou plusieur checkbox que le site aillent lire l'id correspondant.
Et que apres avoir clique sur "verwijderen" qui veux dire supprimer, qu'il aillent supprime toute les donnée dans la base de donnée qui correspond au ID cocher.


Voici le code de ma page " http://gip.sava.be/delete_modify_news.php "
          <form method="post" action="delete_partner.php">
            <p>
              <?
 
  $db = mysql_connect("mysql.kevnanws.be", "-----", "------" );  
  mysql_select_db('francois',$db);  
     
  $sql = 'SELECT id,naam FROM tbl_partners ORDER BY id DESC';
     
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
   
 
   
   
while($data = mysql_fetch_assoc($req))
    {
     
    echo '
    <table width="95%" border="0" align="center">
     <tr>
       <td width="16%"  height="17" align="center">'.$data['id'].'</td>
       <td width="52%" align="center">'.$data['naam'].'</td>
       <td width="16%" align="center"><img src="img/IMG SITE/puce.JPG" width="11" height="12"></td>
       <td width="16%" align="center"><input type="checkbox" name="checkbox" value="checkbox"></td>
     </tr>
    </table>        
   
       ';
    }
 
 
       
// on ferme la connexion &agrave; mysql
mysql_close();
?>
            </p>
            <p align="center">
              <label>
              <input name="Verwijderen" type="submit" id="Verwijderen" value="Verwijderen">
              </label>
            </p>
          </form>

Posté : 06 mars 2007, 22:27
par AB
Bonsoir,

Une bonne adresse pour débuter http://www.phpdebutant.org

Posté : 06 mars 2007, 22:43
par Invité
Bonsoir,

Une bonne adresse pour débuter http://www.phpdebutant.org
merci, j'ai deja tenté de trouver sur ce site (c'est de la que j'ai debuter en php :oops:, mais ai pa trouver)

Posté : 07 mars 2007, 13:47
par mere-teresa
C'est le HTML qu'il faut réviser, pas le PHP : quel est le name de tes checkboxes ?

Posté : 07 mars 2007, 14:17
par sadeq
Les connaissances de base que tu dois avoir pour réaliser ton objectif sont les suivantes:
  • En HTML :
    Les formulaires : pour transmettre des paramètres au programme selon des actions précises : <form method="post" action="programme.php" ...
    Le rôle d'un bouton "submit" et peut-on en avoir plusieurs ...
    Avoir plusieurs formulaires dans une seule page, dans une <table> ...
    Le fonctionnement des checkbox <input type="checkbox" ...
    Le nommage de balises sous forme de tableau : <input name="liste[]" ...
    Les zones de données cachées : <input type="hidden" ...>

    En PHP :
    $_POST ou $_GET : pour recevoir les paramètres transmis par un formulaire
    Comment php peut vérifier les paramètres reçus : if ($_POST[...]) ...
    Comment Php récupère-t-il des paramètres de formulaire sous forme de tableau : $tableau = $_POST['tableau']
    Comment récupèrer un checkbox ou une liste de checkbox

    En SQL :
    en autre la requête DELETE voir : delete .... where ....
Et pour te mettre sur une piste, je te filerais une p'tite idée :
T'as un seul bouton "Supprimer" et plusieurs cases à cocher dans la <table>, tu veux donc faire une suppression par lot des id représentés par les checkbox activées.

A ce moment là, les checkbox activés doivent correspondre à des id connus et doivent être transmis au programme après le submit

Le programme reçoit après le "submit" du bouton "Supprimer" les checkbox activées en déduit les id nécessaires et déclenche une suite de DELETE dans la base.

La clé de voute du problème de suppression par lot se situe au niveau des checkbox en HTML :
"Il faut arriver a attacher un id à un checkbox"
"Il faut réussir l'envoi de l'ensemble des checkbox/id activés, par le submit "supprimer"

    Posté : 07 mars 2007, 19:03
    par jaewon_not_logged
    C'est le HTML qu'il faut réviser, pas le PHP : quel est le name de tes checkboxes ?
    comme marque
    name = checkbox

    Posté : 07 mars 2007, 19:15
    par jobi1722
    Salut,

    je pense que ce qu'ils voulaient dire c'est que tes checkboxs ont toutes le meme nom donc tu ne pourra pas savoir lesquels sont cochés :)

    Posté : 07 mars 2007, 21:40
    par Invité
    Salut,

    je pense que ce qu'ils voulaient dire c'est que tes checkboxs ont toutes le meme nom donc tu ne pourra pas savoir lesquels sont cochés :)
    Ben justement c'est sa ma question comment combiner le nom checkbox avec l'id :?

    On ma dis d'utuliser un array donc vai essaye
    car faut savoir je sais pas d'avance combien de resultat il jaura dans le tableau vue que sa depend...

    Posté : 08 mars 2007, 06:04
    par AB
    Bonjour,

    Pour répondre à ta dernière question:
    while($data = mysql_fetch_assoc($req))
        {
         
        echo '
        <table width="95%" border="0" align="center">
         <tr>
           <td width="16%"  height="17" align="center">'.$data['id'].'</td>
           <td width="52%" align="center">'.$data['naam'].'</td>
           <td width="16%" align="center"><img src="img/IMG SITE/puce.JPG" width="11" height="12"></td>
           <td width="16%" align="center"><input type="checkbox" name="checkbox[]" value="'.$data['id'].'"></td>
         </tr>
        </table>        
       
           ';
        }


    $_POST['checkbox'] sera dans ce cas un tableau contenant les cases cochées correspondant au $data['id'].
    Je sais pas si c'est ce qu'il te faut exactement mais c'est le principe.