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

1 réponse

Nhay
Messages postés
838
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
17 décembre 2015
125
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