Deplacer enregistrement table1 vers table 3

Fermé
Alyson_dev Messages postés 1 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 20 décembre 2012 - 20 déc. 2012 à 12:59
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 21 déc. 2012 à 12:52
Bonjour,


Deplacer enregistrement table1 vers table 2
Alyson_dev - 20 déc. 2012 à 12:23
Suivre - Modifier
Bonjour tout le monde ,


Voila déjà 5 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'].'">


en cliquant sur envoyer j'attérie dans la page RESULTAT.PHP

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']).')';

}
}


MAIS IL SE SE PASSE RIEN , auriez vous une idée s'il vous plait ne suis vraiment bloquée la



//PAGE INDEX

<form id="RESULTAT" name="RESULTAT" method="post" action="RESULTAT.php">
<?
$sql = 'SELECT * FROM table1 WHERE  utilisateur="'.$_SESSION['login'].'" '  ;
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo'<table width="95%" border="0" align="center" class="Ltableau"  id="example" cellspacing="1" cellpadding="1">
	 <thead><br>
	  <tr>
			<th width="5%" class="Htab">Date></th>
			<th width="7%" class="Htab">Priorité</th>
			<th width="5%"  align="center" bgcolor="#E70010">transferer</th>
			<th>S</th>
		        </tr></thead>';
			echo"<tbody>";

	while($result = mysql_fetch_assoc($req)) {
			echo "<tr>";
			echo "<td bgcolor='#CCCCCC' width='5%'>".$result['date'];
			echo"</td>";
			echo "<td class='".$color."' width='7%' align='center'>".$result['priorite'];
			echo '<td width="1%"><input name="msg[]" class="checkbox" type="checkbox" id="msg[]" value="'.$result['id'].'"></td>'; 
		}

	echo "</td></tbody></table>";
	echo"
		<input class='Submit' type='submit' name='Submit' value='transferer'>";
			
?>




//PAGE RESULTAT.PHP



 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 (:-)
A voir également:

1 réponse

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
21 déc. 2012 à 12:52
foreach($_POST['msg'] as $msg){
$sql='INSERT INTO table_2 SELECT * FROM tb_gestion WHERE id IN('.implode(',',$_POST['msg']).')';
}

Tu utilise deux système à la fois, là non ?

Soit tu fais une boucle où tu indique :
foreach($_POST['msg'] as $msg){
$sql='INSERT INTO table_2 SELECT * FROM tb_gestion WHERE id='.$msg;
}


Soit tu ne fait pas de boucle et tu passe par l'implode
$sql='INSERT INTO table_2 SELECT * FROM tb_gestion WHERE id IN('.implode(',',$_POST['msg']).')'; 


Par contre, essaye de mettre le nom des champs dans le select et insert, peut être que tes tables sont légèrement différente.
insert into (champ1, champ2) select champ1,champ2 from ...



Si jamais ça ne fonctionne toujours pas, fait un
echo $sql;
juste après ta requête et copie-colle là sur ton interface de phpmyadmin, il te donnera un message d'erreur utile :)
0