Probleme checkbox page SQL PHP

Jaewon_not_logged
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 21:11

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>

ViPHP
AB
ViPHP | 5818 Messages

06 mars 2007, 22:27

Bonsoir,

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

Invité
Invité n'ayant pas de compte PHPfrance

06 mars 2007, 22:43

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)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

07 mars 2007, 13:47

C'est le HTML qu'il faut réviser, pas le PHP : quel est le name de tes checkboxes ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

07 mars 2007, 14:17

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"
    --------//////----//---//----//////
    -------//---//----//---//----//---//
    ------//////----//////-----//////
    -----||--------||--||---||
    Prendre le recul n'est pas une perte de temps.


    ps: Affrontez moi dans l'arène

    jaewon_not_logged
    Invité n'ayant pas de compte PHPfrance

    07 mars 2007, 19:03

    C'est le HTML qu'il faut réviser, pas le PHP : quel est le name de tes checkboxes ?
    comme marque
    name = checkbox

    Eléphant du PHP | 82 Messages

    07 mars 2007, 19:15

    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 :)

    Invité
    Invité n'ayant pas de compte PHPfrance

    07 mars 2007, 21:40

    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...

    ViPHP
    AB
    ViPHP | 5818 Messages

    08 mars 2007, 06:04

    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.