déboguer ce code

Répondre
guppy71
guppy71
Déconnecté
Guppy71
http://www.lephpfacile.com/wall/wall-1935.php
moogli
moogli
Déconnecté
Il en faut peu pour être heureux !!!!!
yop,

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.

supprime le seconde mysql query

@+
guppy71
guppy71
Déconnecté
Guppy71
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
moogli
moogli
Déconnecté
Il en faut peu pour être heureux !!!!!
wé a priori y a pas tous ça dans la variable $data.

peut tu me filer le create table de ta table timbresdefrance_collections et deux trois tuple de la table que je puisse voir chez moi ? :d

la je vois pas hormis que la requête ne soit pas bonne. (essai d'afficher la requête avant envoie au mysql_query()).
@+
guppy71
guppy71
Déconnecté
Guppy71
Pas de problème je te passe la table et un bout du tableau.
Dis moi comment je fais pour te les passer
Mon adresse mich.v@laposte.net
guppy71
guppy71
Déconnecté
Guppy71
Création de la table

$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 ';

tableau

$data_base[1][0]='1';
$data_base[2][0]='2';
$data_base[3][0]='3';
$data_base[4][0]='4';
$data_base[5][0]='5';
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Vire le MYSQL_NUM de ton mysql_fetch_array.

Celui ci dit que tu récupères les données via des index numériques et non avec le nom du champ.
guppy71
guppy71
Déconnecté
Guppy71
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
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
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.
guppy71
guppy71
Déconnecté
Guppy71
Ok en testant de cette manière je n'est plus les erreurs
if($resultat==true)
{

Merci
moogli
moogli
Déconnecté
Il en faut peu pour être heureux !!!!!
quand tu affiche une erreur mysql affiche aussi la requête pour voir ce qui peut engendrer le problème :)

par exemple
  1.  
  2. <?php
  3. $resultat = mysql_query($sql);  
  4. if ($resultat === false) {  
  5. echo 'Erreur mysql : '.mysql_error().'<br />'.$sql;  
  6. }  
  7. else {  
  8. //traitement de la requete
  9. }  
  10. ?>
  11.  


@+
guppy71
guppy71
Déconnecté
Guppy71
Re-bonjour,

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

C'est viable çà ou pas ??
moogli
moogli
Déconnecté
Il en faut peu pour être heureux !!!!!
heu c'est assez bordelique :d

- 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 !

@+
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique