déboguer ce code

Répondre
moogli
le 08/11/2010 à 19:13
moogli
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

@+
Il en faut peu pour être heureux !!!!!
guppy71
le 08/11/2010 à 20:44
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
Guppy71
moogli
le 08/11/2010 à 22:19
moogli
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()).
@+
Il en faut peu pour être heureux !!!!!
guppy71
le 09/11/2010 à 09:48
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
le 09/11/2010 à 21:41
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';
Guppy71
LA GLOBULE
le 09/11/2010 à 21:59
LA GLOBULE
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
le 09/11/2010 à 22:51
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
Guppy71
LA GLOBULE
le 09/11/2010 à 23:15
LA GLOBULE
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
le 09/11/2010 à 23:28
guppy71
Ok en testant de cette manière je n'est plus les erreurs
if($resultat==true)
{

Merci
Guppy71
Répondre
LoadingChargement en cours