PHP CHECKBOX envoyer enregistrement d'une table a une autre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP CHECKBOX envoyer enregistrement d'une table a une autre

Re: PHP CHECKBOX envoyer enregistrement d'une table a une au

par moogli » 20 déc. 2012, 22:54

delete : suppression


Tu devrais peut être voir un minimum de syntaxe SQL http://sqlpro.developpez.com/

comme déjà dit il faut sélectionner (select) tous les éléments qui t'intéresse et utiliser un insert pour les mettre dans l'autre table. 7

A priori le select c'est bon il ne te reste qu'a faire l'insert.
c'est un requête basique, tu utilise les valeur fournit par le select.

le select est conditionné par ta les valeurs de $_POST$_POST['msg']
<?php
// selection
$select = 'select les champs from la table1 where id in ( '.implode(',',$_POST['msg']).')';
$res = mysql_query($select);
if ($res === false) {
echo '<p class="erreur">Erreur SQL : '.mysql_error().'<br />Avec la requête : '.$select.'</p>';
}else {
while($data = mysql_fect_assoc($res)) {
$insert = 'insert into lasecondetable ( les champs) values ( les valeurs issues issues de data)';
$ri = mysql_query($insert);
if ($ri === false) {
echo '<p class="erreur">Erreur SQL : '.mysql_error().'<br />Avec la requête : '.$select.'</p>';
}
}
mysql_free_result($res);
}

@+

Re: PHP CHECKBOX envoyer enregistrement d'une table a une au

par Alyson_dev » 19 déc. 2012, 17:40

Bonjour moogli,

Merci d'avoir repondu , je t'assure j ai tout essayée la (:-)

est ce que tu aurai une idée de requete ?

dans ma page resultat il recupere bien tous les id de ma table 1 -> print_r ($_POST['msg']); // Array ( [0] => 162 [1] => 163 [2] => 164 )
en faisant ca il supprime tous les id de ma table 1 mais moi je veux qu'il les inserent dans ma table 2
foreach($_POST['msg'] as $msg)
{

mysql_query('DELETE FROM table1 WHERE id IN('.implode(',',$_POST['msg']).')');


}

Re: PHP CHECKBOX envoyer enregistrement d'une table a une au

par moogli » 19 déc. 2012, 17:25

bonjour,

en 20 minutes peux de gens vois ton message, il faut être patient.

pour répondre à ta question :

- configure php pour afficher les erreurs (display_error = on) et un niveau d'erreur correct (error_reporting = E_ALL) c'est obligatoire pour développer correctement.
- Ta syntaxe SQL n'est pas bonne, un insert a forcément un value !. je te conseil aussi de nommer les champs dans lesquelles tu fait insertion ainsi que les champs selectionnés (et dans le même ordre).

Je n'ai jamais testé ce type de requête il est probable que cela ne soit pas possible, et que tu doivent faire un boucle pour traiter le select.

deux possibilités :
- en php : select + une requête préparée pour l'insert
- en SQL : la même chose :) mais dans une procédure stockée qui prend en paramètre le résultat de l'implode.


@+

Re: PHP CHECKBOX envoyer enregistrement d'une table a une au

par Alyson_dev » 19 déc. 2012, 15:22

Est ce que quelqu'un pourrait m'aider s'il vous plait ?

PHP CHECKBOX envoyer enregistrement d'une table a une autre

par Alyson_dev » 19 déc. 2012, 15:08

Bonjour,

Voila déjà 3 jours que je cherche une solution a mon problème toujours pas de solution (:-(
je souhaiterais envoyer, après sélection de checkbox de mon choix , les enregistrements dans une autre table avec les memes champs et faire un ->

INSERT INTO table_2 SELECT * FROM table_1 WHERE id IN('.implode(',',$_POST['msg']).')');

En gros j'ai dans ma page des checkbox qui récupèrent dans value les id des enregistrement ->

<input name="msg[]" class="checkbox" type="checkbox" id="msg[]" value="'.$result['id'].'">

<input class='Submit' type='submit' name='Submit' value='Envoyer'>


en cliquant sur envoyer j'attérie dans la page résultat


print_r ($_POST['msg']); // il m'affiche bien avec les id -> Array ( [0] => 162 [1] => 163 [2] => 164 )


if(isset($_POST['msg']))

{

foreach($_POST['msg'] as $msg)
{

$sql='INSERT INTO table_2 SELECT * FROM tb_gestion WHERE id IN('.implode(',',$_POST['msg']).')';

}
}

en fait il ne se passe rien et je ne comprend pas pourquoi,

Merci d'avance de votre aide je suis un peu désespérée la (:-)