bonjour, j'ai un petit soucis avec le remplissage d'une table ("cbo_annonces_catalogue") a partir de 2 autres ("afssaps_cis_cip" et "afssaps_cis").
j'ai fait un petit script (a la vas vite) pour faire le boulot... cela marche bien pour les 2 premiers paquets..(2500 enregistrements par paquet) mais j'ai l'erreur suivante au paquet numéro 3 (quand $page=3).
je précise que j'ai beaucoup d'enregistrement...env 90 000...d'ou le découpage par morceau de 2500 mais ca ne semble pas suffire...
voici mes structures de table
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Nombre de résultats : 89774 page= 3 nb page= 36 premiereAnnonceAafficher= 5000 nombreDannoncesParPage= 2500 Warning: mysql_query() [function.mysql-query]: Unable to save result set in /homez.33/fred/www/nomdemonsite/import_base_afssaps.php on line 86 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.33/fred/www/nomdemonsite/import_base_afssaps.php on line 89 # n=0 Next
et voici le code qui est censé faire le boulot
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 -- -- Structure de la table `afssaps_cis` -- CREATE TABLE IF NOT EXISTS `afssaps_cis` ( `CIS` longtext NOT NULL, `denomination` longtext NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Structure de la table `afssaps_cis_cip` -- CREATE TABLE IF NOT EXISTS `afssaps_cis_cip` ( `CIS` longtext NOT NULL, `cip` longtext NOT NULL, `cip13` longtext NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Structure de la table `cbo_annonces_catalogue` -- CREATE TABLE IF NOT EXISTS `cbo_annonces_catalogue` ( `catalog_id` int(20) NOT NULL AUTO_INCREMENT, `froid` enum('non','oui') NOT NULL DEFAULT 'non', `cip` varchar(7) NOT NULL DEFAULT '', `cip13` varchar(13) NOT NULL DEFAULT '', `denomination` varchar(255) NOT NULL DEFAULT '', `labo` varchar(50) NOT NULL DEFAULT '', `non_perissable` tinyint(1) NOT NULL DEFAULT '0', KEY `id` (`catalog_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8520 ;
merci par avance de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 <?php include_once ('path.php'); include_once ($path.'/connect.php'); // On met dans une variable le nombre de messages qu'on veut par page $nombreDannoncesParPage = 2500; // Essayez de changer ce nombre pour voir :o) // On récupère le nombre total de messages $retour_nb = mysql_query("SELECT COUNT(1) AS nb FROM afssaps_cis_cip"); $donnees_nb = mysql_fetch_array($retour_nb); $page=intval($_GET['page']); if ( empty($page) ) { $page = 1; } $page_precedente=$page-1; $page_suivante=$page+1; // On calcule le nombre de pages à créer $nombreDePages = ceil($donnees_nb['nb'] / $nombreDannoncesParPage); // Puis on fait une boucle pour ecrire les liens vers chacune des page ?> <p align="center">Nombre de résultats : <?php echo $donnees_nb['nb'];?></p> <? // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL $premiereAnnonceAafficher = ($page - 1) * $nombreDannoncesParPage; ?> <p> <?php echo 'page= '.$page; ?><br /> <?php echo 'nb page= '.$nombreDePages; ?><br /> <?php echo 'premiereAnnonceAafficher= '.$premiereAnnonceAafficher; ?><br /> <?php echo 'nombreDannoncesParPage= '.$nombreDannoncesParPage; ?><br /> </p> <?php $reponse = mysql_query("SELECT afssaps_cis.denomination, afssaps_cis_cip.cip, afssaps_cis_cip.cip13 FROM afssaps_cis, afssaps_cis_cip WHERE afssaps_cis.CIS = afssaps_cis_cip.CIS LIMIT $premiereAnnonceAafficher , $nombreDannoncesParPage"); // Requête SQL $n=0; while ($donnees = mysql_fetch_array($reponse) )//on affiche les infos { $modif = array("é","Ã","ô","â","î","è","ê"); $amodif = array("é","à","ô","â","î","è","ê"); $denomination0=str_replace('é','e',$donnees['denomination']); $denomination=mysql_real_escape_string($denomination0); mysql_query("INSERT INTO cbo_annonces_catalogue VALUES('', '', '".$donnees['cip']."', '".$donnees['cip13']."', '$denomination', '', '')")or die(mysql_error()); $n++; //echo $donnees['cip'].' | '.$donnees['cip13'].' | '.str_replace('é','é',$donnees['denomination']).'<br>'; //echo $donnees['cip'].' | '.$donnees['cip13'].' | '.$denomination.'<br>'; } echo 'n='.$n; mysql_close(); ?> <li ><a href="import_base_afssaps.php?page=<?php if ( $n==$nombreDannoncesParPage ) { echo $page_suivante; } else { echo $page; } ?>"> Next </a></li>
Partager