copie de données d'une table vers une autre

Répondre
kessy
le 25/06/2003 à 14:40
kessy
salut
je voudrai copier certaines lignes d'une table pour les inserer dans une autre et voici le code que j'ai écrit pour cela:
***************
1:<?php
2:$connection = mysql_connect ("localhost","user","user");
3:if ($connection)
4:{
5: $selection = mysql_select_db(gtsinfot,$connection);
6: if ($selection)
7: {
8:$request = "select * from gtsinfot.smsgagnants where age > 7"
9: if ($resultat = mysql_query($request,$connection))
10: {
11: while($ligne = mysql_fetch_row($resultat))
12: {
13: $selection1 = mysql_select_db(etude,$connection);
14: if($req = "insert into etude.gagnant values ('','$ligne[1]','$ligne[2]','$$ligne[3]','$ligne[4]','$ligne[5]','$ligne[6]','$ligne[7]','$$ligne[8]','$ligne[9]','$ligne[10]','$ligne[11]','$ligne[12]')")
15: $resultat = mysql_query($req,$connection);
16: else
17: die("mauvaise insertion");
18: }
18: }
20: else
21: echo "mauvaise requete";
22: }
23: else
24: die ("echec de connection à la bd");
25 : }
26: else
27: die ("echec de connection au serveur de base de données");
28:?>
****************
mais à l'execution j'ai le message d'erreur suivant:
*************
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in d:\syssy\site\essai1.php on line 11
****************
pourtant il se fait une insertion dans la table gagnantmais seulement de la premiere ligne de la table smsgagnant qui vérifie la requete. je ne comprend pas pourquoi ce message d' erreur ni pourquoi il n'ya qu'une seule ligne qui est insérée.quelqu'u a t il une idée pour me débloquer?merci d'avance
LA GLOBULE
le 25/06/2003 à 17:38
LA GLOBULE
Ben....

Ton mysql_fethc_row à l'air correct.

Mais çà :

<?php
if($req = "insert into etude.gagnant values ('','$ligne[1]','$ligne[2]','$$ligne[3]','$ligne[4]','$ligne[5]','$ligne[6]','$ligne[7]','$$ligne[8]','$ligne[9]','$ligne[10]','$ligne[11]','$ligne[12]')")
?>


Ca veut dire quoi ?
LA GLOBULE
le 25/06/2003 à 17:41
LA GLOBULE
$request = "select * from gtsinfot.smsgagnants where age > 7"
La deja il te manque un ;

De plus, apparemment, tes deux bases ont deux noms differents ainsi que tes tables. Pourquoi ecris tu alors le nom de ta base dans ta requete ?
XTremTourist
le 25/06/2003 à 17:43
XTremTourist
faudrai ke tu demande une certain clarter dans le scriptage paske y a tellement de facon d ecrire les pages ke c lourdin de passer d un poste a l autre en voyent des page dif a chake foi
kessy
le 25/06/2003 à 19:10
kessy
voici le code en plus simplifié
<?php
$connection = mysql_connect ("localhost","user","user");
$selection = mysql_select_db(gtsinfot,$connection);
$request = "select * from gtsinfot.etude where age > 7";
$resultat = mysql_query($request,$connection);
while($ligne = mysql_fetch_row($resultat));
{
$selection1 = mysql_select_db(smsgagnant,$connection);
$req = "insert into smsgagnant.smsgagnant values ('','$ligne[1]','$ligne[2]','$ligne[3]','$ligne[4]','$ligne[5]','$ligne[6]','$ligne[7]','$ligne[8]','$ligne[9]','$ligne[10]','$ligne[11]','$ligne[12]')";
$resultat = mysql_query($req,$connection);
}
?>

ca n'affiche plus d'erreur seulement quand je vais consulter la table smsgagnant il n'ya qu'une seule nouvelle entrée et avec des champs vides excepté l'id qui est un autoincrement et le champ age sur lequel je fais la clause where.

mysql_fetch_row ne garde t il pas toutes les lignes du resultat d'une requete et renvoie une ligne a chaque appel?
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours