je suppose que le problème est ici
$resultat = mysql_query("SELECT id,yvert,neuf,valneuf,dateaquineuf,oblit,valoblit,dateaquioblit,neufchar, valneufchar,dateaquineufchar,photo,note,desig,annee,chemin,lstneufdispo,disponeuf,lstneufmanco,manconeuf,lstoblitdispo ,dispooblit,lstoblitmanco,mancooblit,lstchardispo,dispochar,lstcharmanco,mancochar,paneuf,paneufchar,paoblit,date FROM timbresdefrance_collections.".$collection." WHERE yvert=".$data_base[$i][0]."");
$req = mysql_query($resultat) or die('Erreur SQL !<br />'.$resultat.'<br />'.mysql_error());
ton deuxième mysql_query est fait sur le résultat du premier, tu utilise donc une ressource mysql au lieu d'une chaine de caractère.
bonsoir,
après suppression de la ligne j'ai cette avertissement sur les valeurs de data['id']data['neuf'] et ainsi de suite pour toutes les autres.
Si je comprend bien l'avertissement ça veut dire que les valeurs de id, neuf etc ne sont pas prises en compte
Notice: Undefined index: id in C:\wamp\www\timbres_VER2-wamp\espace-perso\gestion-collec\ajout_fiche.php on line 178
178 est la ligne du $sql='REPLACE INTO timbresdefrance_collections.'.$collection.' VALUES
$sql='CREATE TABLE timbresdefrance_collections.'.$nomcollec.' ( id int(6) NOT NULL auto_increment, yvert text NOT NULL, neuf int(4) NOT NULL, valneuf decimal(10,2) NOT NULL, dateaquineuf text NOT NULL, oblit int(4) NOT NULL, valoblit decimal(10,2) NOT NULL, dateaquioblit text NOT NULL, neufchar int(4) NOT NULL, valneufchar decimal(10,2) NOT NULL, dateaquineufchar text NOT NULL, photo text NOT NULL, note text NOT NULL, desig text NOT NULL, annee text NOT NULL, chemin text NOT NULL, lstneufdispo text NOT NULL, disponeuf int(4) NOT NULL, lstneufmanco text NOT NULL, manconeuf int(4) NOT NULL, lstoblitdispo text NOT NULL, dispooblit int(4) NOT NULL, lstoblitmanco text NOT NULL, mancooblit int(4) NOT NULL, lstchardispo text NOT NULL, dispochar int(4) NOT NULL, lstcharmanco text NOT NULL, mancochar int(4) NOT NULL, paneuf decimal(10,2) NOT NULL, paneufchar decimal(10,2) NOT NULL, paoblit decimal(10,2) NOT NULL, date datetime NOT NULL, PRIMARY KEY (id) ) TYPE=MyISAM ';
OK j'ai viré le MYSQL_NUM, mais maintenant j'ai un problème. Dans la table, dans le champ 'yvert' j'ai des valeurs du genre 0006A et apparemment ça provoque une erreur ( Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C)
Pour les autres valeurs pas de problème
de plus dans la table la mise à jour se fait comme ça : 6
Alors que la valeur dans $data_base[$i][7] est 6A
Je ne vois pas trop le rapport entre le message d'erreur et ton histoire de champs.
L'erreur dit que tu passes un booléen au mysql_fetch_array au lieu d'y passer un identifiant de ressource MySQL (un identifiant de ressource MySQL issu d'un mysql_query).
En d'autres termes, tu passes un true ou un false en paramètre au mysql_fetch_array alors qu'il faut y mettre le résultat d'un mysql_query.
Maintenant que je n'ai plus d'erreur je suis confronté au temps (limite des 45 s).
Question deux boucles for sont elles plus rapide que mon scrip ?
En suite je pourrais avec un nouveau script vider la table la remplir à partir d'un second tableau créé dans les boucles for.
En clair :
1 script : je lis et récupères les données dans la table 'base'
2èm script : je lis et récupères les données dans la table 'collection'
3èm script : à l'aide de boucle for je crée un second tableau avec les mises à jour (4500 fois x 4500)
4èm script : je vide la table 'combinaison' et je la remplis avec les données du second tableau
- Ceci est à faire épisodiquement ? (voir quasiment jamais)
- Est ce toujours le même traitement ?
si oui je pencherais pour un script en modifiant le set time limite (si possible ^^)
sinon de "relâcher" la main pour avec type de script aevc un truc comme ça mais la tu execute la chose au p'tit bonheur la chance c'est plus que moyen !