mysql_fetch_array et include

Invité
Invité n'ayant pas de compte PHPfrance

07 janv. 2007, 15:24

Bonjour à tous et bonne année !

Pour la construction d'un site, j'ai placé toutes les requetes MYSQL dans un unique fichier 'requetes' que j'appelle en début de page 'index' via un include.
Dans ce fichier sont executées toutes les requetes necessaires pour l'affichage des données du site. Je n'ai donc qu'une connexion dans la page.
Les requetes sont de ce type :

Code : Tout sélectionner

$query = "SELECT ...."; $result = mysql_query ($query);
Malheureusement je rencontre un probleme que je ne comprends pas. Une fois que je suis dans index je fais un mysql_fetech_array et rien ne s'affiche. Pourtant si je fais un mysql_num_rows, il me retourne le bon nombre d'enregistrements, mais impossible de les afficher avec mysql_fetch_array.
Ca ne semble marcher que si je place le mysql_fetch_array dans le fichier 'requetes' (ce que je ne veux pas).
L'autre seule solution qui marche est de passer par un mysql_result, mais bon ce n'est pas tip top.

Voilà mon code :
<?
// On apelle le fichier des requetes
include ("requetes.php");

echo 'Nombre de résultats retournés par la requete : '.mysql_num_rows($result_1); // affiche correctement le nombre d'enregistrements

// Methode 1: n'affiche rien
while ($aff_1=mysql_fetch_array($result_1)) {
		$nom = $aff_1['categorie'];
		echo $nom;
	}
	
// Methode 2: affiche correctement les résultats
$nb = mysql_numrows($result_1); // on recupère le nombre d'enregistrements
$i = 0;
while ($i < $nb){ // parcours des résultats de la requête
	$nom = mysql_result($result_1, $i, "categorie");
	echo $nom;
$i++;
}
?>
Et là je bloque. Je ne vois pas pourquoi le mysql_fetch_array ne veut rien afficher... et je n'ai rien trouvé sur google sur d'eventuels conflits avec des include ou autre donc je m'en remets à vous...

Un grand merci d'avance !
Neolus

Mammouth du PHP | 1029 Messages

08 janv. 2007, 11:16

Bonjour,

As-tu vérifier ce que retournais le tableau?
<?php
$aff_1=mysql_fetch_array($result_1);
?>
<pre>
<?php var_dump($aff_1) ?>
</pre>

L'expérience est la somme de toutes nos erreurs.

Petit nouveau ! | 2 Messages

08 janv. 2007, 22:19

Salut (oui je me suis inscrit :D ),

Bon j'ai fait ton test et il me ressort :

Code : Tout sélectionner

bool(false)
En fait cela marche si je rajoute l'instruction avant :
mysql_data_seek($result_1, 0) ;
Je suis obligé de remttre le pointeur à 0. Mais je comprends pas pourquoi... (et ca le fait même si j'enleve le num_rows avant. Bizarre.

Petit nouveau ! | 2 Messages

08 janv. 2007, 22:31

[MODE BOULET = on] Tu sais pourquoi il fallait remettre mon pointeur à 0 ? Car je parcourais dejà le tableau resultant de cette requete dans mon fichier requete. Il me servait à une autre requete... Mais quel abruti je suis... désolé [MODE BOULET = off]

Encore désolé et merci de ton aide !!!

[EDIT] On peut supprimer le post si vous voulez, car il n'est pas d'une grande aide...