pb avec while ($a = mysql_fetch_array($b))

Eléphant du PHP | 98 Messages

11 mai 2005, 16:58

salut all,
petite question : il y a-t-il une limite dans le mysql_fetch_array ?
parce qu'en fait je n'arrive à afficher que les 19 premières colonnes de ma table :/
du $a[0] au $a[18]......

quelqu'un a une idée ? merci

Eléphant du PHP | 281 Messages

11 mai 2005, 17:02

Bonjour
Non elle n'est pas limité a 19 choix cette fonction , je suppose que peu être ta 20 eme entrée dans la bdd est avec un accent ou un caractère spécial ou je ne sais pas il faudrait voir ton code ou ta bdd donc ;)

Eléphant du PHP | 98 Messages

11 mai 2005, 17:04

en fait le champ suivant est vide... et quasiment tous les champs sont numériques.. :/

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 mai 2005, 17:06

Et est-ce que ce champ vide est le dernier de ta ligne ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 281 Messages

11 mai 2005, 17:06

ah ben c'est le fait que le champ soit vide alors , vu qu'il est vide il detecte cela comme la fin de la bdd et arete le listage, si tu met une valeur même si c'est 0 ca continuera je pense !

Eléphant du PHP | 98 Messages

11 mai 2005, 17:07

non non pas du tout, il y en plein (plein) derrière..

Eléphant du PHP | 98 Messages

11 mai 2005, 17:08

ah ben c'est le fait que le champ soit vide alors , vu qu'il est vide il detecte cela comme la fin de la bdd et arete le listage, si tu met une valeur même si c'est 0 ca continuera je pense !
je viens de vérifier, la valeur par défaut est 0.... donc il n'était pas vide en fait

Eléphant du PHP | 281 Messages

11 mai 2005, 17:10

J'ai jeter un oeil sur le site de php et nul part il est écrit qu'il y a une restriction de se genre donc le problème doit venir d'ailleur, mais de ou ?!

je te laisse regarder :

http://fr.php.net/manual/fr/function.my ... -array.php

voila ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 mai 2005, 17:11

Donne nous la conception de ta bdd et le bout de code qui bloque stp
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 98 Messages

11 mai 2005, 17:11

merci, mais j'avais déjà regardé la dessus :)

Eléphant du PHP | 98 Messages

11 mai 2005, 17:17

$prod = "SELECT * FROM produit WHERE p_nom='".$_POST['liste']."' ORDER BY p_nom ASC";
$r_prod=mysql_query("$prod") or die("Invalid query : ".mysql_error());
while ($r = mysql_fetch_array($r_prod))
{
$r_nom = $r[0];	$r_ref = $r[1];
$r_datec = $r[2]; $r_dated = $r[3]; $r_datem1 = $r[4]; $r_datem2 = $r[5]; $r_datem3 = $r[6];$r_ao_125 = $r[7]; $r_ao_250 = $r[8]; $r_ao_500 = $r[9]; $r_ao_1000 = $r[10]; $r_ao_2000 = $r[11]; $r_ao_4000 = $r[12];$r_ato_100 = $r[13]; $r_ato_125 = $r[14]; $r_ato_160 = $r[15]; $r_ato_200 = $r[16]; $r_ato_250 = $r[17]; $r_ato_315 = $r[18];$r_ato_400 = $r[19]; $r_ato_500 = $r[20]; $r_ato_630 = $r[21]; $r_ato_800 = $r[22]; $r_ato_1000 = $r[23]; $r_ato_1250 = $r[24];$r_ato_1600 = $r[25]; $r_ato_2000 = $r[26]; $r_ato_2500 = $r[27]; $r_ato_3150 = $r[28]; $r_ato_4000 = $r[29]; $r_ato_5000 = $r[30];
......}

p_nom varchar(100)
p_ref varchar(100)
p_datec date Non 0000-00-00
p_dated date Oui NULL
p_datem1 date Oui NULL
p_datem2 date Oui NULL
p_datem3 date Oui NULL
p_ao_125 float Oui NULL
p_ao_250 float Oui NULL
p_ao_500 float Oui NULL
p_ao_1000 float Oui NULL
p_ao_2000 float Oui NULL
p_ao_4000 float Oui NULL
p_ato_100 float Oui NULL
p_ato_125 float Oui NULL
p_ato_160 float Oui NULL
.....


en gros c'est ça, je vais pas tout mettre, ça serait trop long
ce qui est bizarre c'est que j'arrive à affiche jusqu'à $r[18]...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 mai 2005, 17:20

Verifie dans ta bdd si l'enregistrement 18 ne contient pas des caractères spéciaux ou des co...ries dans ce genres
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 98 Messages

11 mai 2005, 17:21

non il y a rien d'incorrect, il n'y qu'une valeur numérique... :(

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 mai 2005, 17:25

C'est quoi le nom de cette colonne ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 983 Messages

11 mai 2005, 17:25

Deja pour rendre ton code plus propre je te conseille la fonction extract , surtout si t'as bcp de champ ds ta table, ce qui a l'air d'etre le cas.

ex:

Code : Tout sélectionner

$prod = "SELECT * FROM produit WHERE p_nom='".$_POST['liste']."' ORDER BY p_nom ASC"; $r_prod=mysql_query("$prod") or die("Invalid query : ".mysql_error()); while ($r = mysql_fetch_array($r_prod)) { //extract va te créer les variables ayant pour nom celui du champ dans la table extract($r_prod); }

;)