0 votes

Insertion dans le tableau B de données sélectionnées par des cases à cocher dans le tableau A

[Statut : Apprenant]

J'ai une table A avec des milliers d'enregistrements. Sur chaque page affichée, seules 20 lignes apparaissent, avec les champs suivants :

check
last_name 
first_name 
gr 
eth 
sex 
id_num (a unique value)
reason 
start_date

Le champ "check" indique une case à cocher que l'utilisateur peut cocher. Au bas de chaque page de 20 enregistrements se trouve le bouton de sélection. Je veux prendre le "id_num" unique des lignes qui sont sélectionnées par l'utilisateur dans la table A et les insérer dans la table B. (La méthode est post.)

Code de saisie des cases à cocher :

$html = <input type='checkbox' name='checkbox[]'
                      id = '' value='<?PHP echo $aRecords [ \"id_num\" ]; ?>' />" ;

Le SQL après que les lignes d'une page ont été sélectionnées par l'utilisateur :

include_once "db_login.php" ;
if ( isset ( $_POST [ checkbox] ) ) 
   { 
      foreach ( $_POST [ 'checkbox' ] as $checkbox )
         {
            $sql = "INSERT INTO sap_id_select ( select_id )
                    VALUES ( '<???>' ) " ;
            mysql_query ( $sql ) or ( "Error " . mysql_error () ) ;
         }
   }

J'ai aussi essayé, en plus de beaucoup d'autres choses :

foreach ( $_POST [ 'checkbox' ] as $checkbox )
         {
            $id_list = implode(',',$_POST['checkbox']);
            $sql = "INSERT INTO sap_id_select ( select_id )
                    VALUES ( '{$id_list}' ) " ;
         }

Comment puis-je obtenir le champ id_num dans le tableau $_POST et ensuite dans la table B ? Merci pour votre aide.

1voto

Martin Points 1362
 $html = <input type='checkbox' name='checkbox[]'
                  id = '' value='<?PHP echo $aRecords [ \"id_num\" ]; ?>' />" ;

Vous manquez la citation ouverte, n'est-ce pas ? Si le texte ci-dessus ne vous donne pas d'erreur, cela signifie que votre guillemet ouvrant est au-dessus de cette ligne ; en d'autres termes, c'est tout chamboulé. Utilisez un éditeur qui colore votre syntaxe.

En supposant que vous vouliez écrire

 $html = "<input type='checkbox' name='checkbox[]'
                  id = '' value='<?PHP echo $aRecords [ \"id_num\" ]; ?>' />" ;

alors php interprétera le bit <?PHP littéralement, ce qui expliquerait ce que vous voyez. Vous voulez simplement :

 $html = "<input type='checkbox' name='checkbox[]'
                  id = '' value='".$aRecords["id_num"]."' />" ;

Ou si ce que vous avez écrit n'est pas dans la partie excutée php de votre code alors tout ce que je peux suggérer est de mettre <?php au lieu de <?PHP mais je doute fort que ce soit ce qui cause les problèmes. Je parie sur ce qui précède.

0voto

Vincent Ramdhanie Points 46265

On dirait que tout est bien réglé. Essayez.

  $sql = "INSERT INTO sap_id_select ( select_id )
                VALUES ( '.$checkbox.' ) " ;

Peut-être pouvez-vous dire si vous obtenez des erreurs spécifiques.

0voto

dave Points 726

Vincent -- J'ai changé le code de saisie de la case à cocher html en

$html .= "<input type='checkbox' name='checkbox[]' id = ''
            value='$aRecords ['id_num']' />" ;

En supposant que cela soit correct ( ?), quelle serait mon instruction SQL INSERT pour INSÉRER le numéro d'enregistrement unique (id_num) dans la table B ? Le SQL suivant, bien sûr, ne fonctionne pas.

include_once "db_login.php" ;
if ( isset ( $_POST [ checkbox] ) ) 
   {  
      foreach ( $_POST [ 'checkbox' ] as $checkbox )
         {  
            $sql = "INSERT INTO sap_id_select ( selected_id )
                    VALUES ( '{ $_POST [ checkbox ]}'
                           ) " ;
            mysql_query ( $sql ) or ( "Error " . mysql_error () ) ;
         }
   }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X