PHP + BDD + foreach

Résolu/Fermé
DAG - 24 juil. 2008 à 15:31
 DAG - 24 juil. 2008 à 16:01
Bonjour,

Je voudrais prendre toutes es données d'un champs d'une table se trouvant dans une base de données et les mettre dans le champs d'une autre base de données.... Ceci afin de créer une base de données de référence. bref, voici le code :

while ($data = mysql_fetch_array($req))
{
$data[NOMUSUEL];
foreach($data as $values)
{
$statement2 = "INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('$values');";
$req2 = mysql_query($statement2) or die('<br>Erreur base de donnée !<br>'.$statement2.'<br>'.mysql_error());
}
}


J'aimerais savoir pourquoi il me renvois les données en double ? Par exemple si je trouve un nom "DUPOND", il va me mettre 2 DUPOND dans la base...
Je pensais que le foreach dans le while ne l'aurai pas faire tourner deux fois sur lui même.

Savez vous comment résoudre le problème ?

Merci d'avance.
A voir également:

2 réponses

C'est tout con, je me répond à moi même :

while ($data = mysql_fetch_array($req))
{
	$statement2 = "INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('$data[NOMUSUEL]');";
	echo $statement2  . "<br>";
}


Je suis vraiment trop mauvais...
2
En gros je fais ça :

$statement1 = "SELECT NOMUSUEL FROM testphp.tabletampon_rh_file";
$req = mysql_query($statement1) or die('<br>Erreur base de donnée !<br>'.$statement1.'<br>'.mysql_error());	
$data = mysql_fetch_array($req);
while ($data = mysql_fetch_array($req))
{
	$data[NOMUSUEL] = $var;
	foreach($data as $values)
	{
		$statement2 = "INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('$values');";
		echo $statement2."<br>";
		//$req2 = mysql_query($statement2) or die('<br>Erreur base de donnée !<br>'.$statement2.'<br>'.mysql_error());
	}
}  
mysql_free_result ($req);  
mysql_close (); 


Et le résultat c'est ça :

INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('titi');
INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('');
INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('tata');
INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('');
INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('tutu');
INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('');
INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('toto');
INSERT INTO refdb.OUVRANT_DROIT(NOM_OD) values ('');
1