[PHP/MySQL] Erreur aléatoire...? - Page 2

Résolu
Précédent
  • 1
  • 2
roukmouth Messages postés 26 Statut Membre 2
 
je viens de rajouter
echo mysql_num_rows($result)

et le résultat est 0 pour les pages où cela ne fonctionnent pas et 1 pour celles qui fonctionnent.

Et en effet,
$query = "	SELECT * FROM liens
				WHERE lien_titre = '".$titre."'";

ne change rien.
0
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
C'est à dire? Si tu executes ce mysql_num_rows avant la boucle, tu ne devrais avoir qu'un seul resultat, un chiffre de 0 à n... Mais pas un chiffre pour chaque ligne...
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Bon ben c'est la requete peut être, la base ?

cherchons un peu...
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Ta variable $titre, elle est mise à jours dans le fichier inclut (celui de connexion) j'imagine.
Tu peux nous le faire voir stp.
0
roukmouth Messages postés 26 Statut Membre 2 > kij_82 Messages postés 4260 Statut Contributeur
 
$titre n'est pas dans le fichier de connexion mais dans l'URL de la page envoyé par la page précedante. Voici son code :
<?php
			include("fichier de connexion");
			$connexion = mysql_connect($host, $user, $pass) or die ("Connexion au serveur impossible");
			$db = mysql_select_db($base, $connexion) or die ("La base de données ne peut être sélectionnée");
			$query = "	SELECT * FROM liens
						WHERE lien_categorie = '$cat'
						ORDER BY lien_titre"; //$cat étant dans l'URL de la page
			$query2 = "	SELECT * FROM liens
						ORDER BY lien_titre";
			$result = mysql_query ($query) or die ("Exécution de la requête impossible");
			$result2 = mysql_query ($query2) or die ("Exécution de la requête impossible");
			$nblignes = mysql_num_rows ($result);
			$nblignes2 = mysql_num_rows ($result2);
			for ($i=0; $i<$nblignes; $i++)
				{
				$ligne = mysql_fetch_array ($result);
				extract($ligne);
				echo "	<tr>
							<td width='50%'>
								<center>
								<br>
								<a href='fichelien_auto.php?titre=$lien_titre'> //fichelien_auto.php étant la page à problème citée plus haut
								<img src='$lien_image' border='0' align='left'>
								<b><h3>$lien_titre</h3></b></a>
								Ajouté le $lien_date par $lien_membre
								</center>
							</td>";
				$i++;
				if ($i<$nblignes)
					{
					$ligne = mysql_fetch_array ($result);
					extract($ligne);
					echo "		<td width='50%'>
									<center>
									<br>
									<a href='fichelien_auto.php?titre=$lien_titre'>
									<img src='$lien_image' border='0' align='left'>
									<b><h3>$lien_titre</h3></b></a>
									Ajouté le $lien_date par $lien_membre
									</center>
								</td>
							</tr>";
					}
				else
					{
					$i--;
					echo " 	<td width='50%'>
							</td>
							</tr>";
					}
				}
			echo "	</table>
					<br>
					<center><u>Résultat : <b>$i</b> liens sur un total de <b>$nblignes2</b></u></center>
					<br>
					<center><img src='retour.gif' border='0' onClick='history.go(-1)'></center>";
			?>
0
roukmouth Messages postés 26 Statut Membre 2
 
tous les "lien_page" de la base de données sont de type : lien_*.php" où * est généralement le nom d'un lien (ex: lien_187codemeurtre.php) et tous ces fichiers sont situés au même endroit. Alors pourquoi est-ce si aléatoire??? (Mais c'est toujours les mêmes qui fonctionnent et les mêmes qui ne fonctionnent pas bien sûr)
0
roukmouth Messages postés 26 Statut Membre 2
 
je viens d'effectuer un nouvel essai, j'ai remplacé la boule while par :
$query = "	SELECT * FROM liens
				WHERE lien_titre = '$titre'";
	$result = mysql_query ($query) or die ("Exécution de la requête impossible");
	$nblignes = mysql_num_rows ($result);
	for ($i=0; $i<$nblignes; $i++)
				{
				$ligne = mysql_fetch_array ($result);
				extract($ligne);
				echo "	<br>
				<img src='$lien_image' border='0' align='left'>
				<h3><b>$lien_titre</b></h3>
				Ajouté le $lien_date par $lien_membre<br>
				<b>Catégorie : </b>$lien_categorie<br />";
		if ($lien_genre2 == "")
			{
			echo"<b>Genre : </b>$lien_genre1<br>";
			}
		else
			{
			echo"<b>Genre : </b>$lien_genre1 / $lien_genre2<br>";
			}
		include($lien_page);
		}

Mais cela ne change strictement rien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kij_82 Messages postés 4260 Statut Contributeur 857
 
Je trouve ca quand même bizarre que tu ne mette pas ta variable de connexion quand tu fais un mysql_query. Tu ouvre une connexion ou ? Et tu la ferme ou ? Car si tu en ouvre une au début, et que tu ne la ferme qu'à la fin de toute tes pages, c'est possible qu'entre temps la connexion soit fermée si une erreur que tu n'a pas prévue (par un die("message"), arrive finalement (apres avoir affiché ta page, et de ce coup, quand tu clique sur un truc pour aller dans la page suivante, ta connexion n'étant pas effective, les requetes ne se font pas, et rien n'est affiché.
Peut etre..
0
roukmouth Messages postés 26 Statut Membre 2
 
J'ai trouvé la solution !!!!

Dans ma base de données, tous les titres contenant le signe "+" appelé par $lien_titre ne fonctionnaient pas. J'ai enlevé tous les "+" et les ai remplacé par des "-" et tout fonctionne.

Je vous remercie tous. Roukmouth...
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Ben c'est du beai ca tiens ! Tout ce temps perdu pour rien, dorénavant tu saurra qu'il ne faut jamais nommé en commencant par des signe de ponctuation ou autre !

Ravi que ce soit bon.
++
0
Précédent
  • 1
  • 2