Erreur PHP/requête SQL division by zero

MrPich -  
Breub62 Messages postés 2989 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis actuellement en train de concevoir un moteur de recherche pour mon site. Le problème est que PHP m'affiche une erreur au niveau de ma requête SQL. Je pense pourtant qu'elle est correcte, ça doit venir de la syntaxe ?

$query2 = $bdd->query('SELECT id, titre, contenu, DATE_FORMAT(datep, \'%d/%m/%Y\') AS date_p FROM articles WHERE titre LIKE '%$search%' OR contenu LIKE '%$search%'');


Voici l'erreur en question.

Warning: Division by zero in /var/www/legtux.org/users/monsite/search.php on line 28


Pourriez-vous m'aider ? Merci ;)

5 réponses

Breub62 Messages postés 2989 Date d'inscription   Statut Membre Dernière intervention   369
 
Je ne crois pas que le problème vienne de ta requête. Peux tu montrer les quelques lignes qui précèdent et suivent la requête stp?
0
MrPich
 
Je C/C tout le code, au cas où. Voilà :)

<?
	try
	{
	$bdd = new PDO('mysql:host=localhost;dbname=zeldasymphony;', 'zeldasymphony', 'hs-887632'); // Connexion BDD
	}
	catch(Exception $e)
	{
	die('Erreur : '.$e->getMessage()); // Si mauvais identifiants, renvoyer une erreur
	}
	
	$search = $_POST['search'];
	
	if (isset($search))
	{
		$query = $bdd->query('SELECT COUNT(*) AS nbr FROM articles WHERE titre LIKE '%$search%' OR contenu LIKE '%$search%'');
		$nbr = $query->fetch();
		
			if ($nbr['nbr'] != 0)
			{
				if ($nbr['nbr'] == 1)
				{
				$query2 = $bdd->query('SELECT id, titre, contenu, DATE_FORMAT(datep, \'%d/%m/%Y\') AS date_p FROM articles
				WHERE titre LIKE '%$search%' OR contenu LIKE '%$search%'');
				echo 'Un seul résultat !<br />';
			
					while ($q2 = $query2->fetch())
					{ ?>
					<p><a href="complete_art.php?id=<? echo $q2['id']; ?>"><? echo $q2['titre']; ?></a> (<? echo $q2['date_p']; ?>)</p>
					<? }
				$query2->closeCursor();
				}
				else {
				$query2 = $bdd->query('SELECT id, titre, contenu, DATE_FORMAT(datep, \'%d/%m/%Y\') AS date_p FROM articles
				WHERE titre LIKE '%$search%' OR contenu LIKE '%$search%'');
				echo ''.$nbr['nbr'].' résultats !<br />';
				$query->closeCursor();
				
					while ($q2 = $query2->fetch())
					{ ?>
					<p><a href="complete_art.php?id=<? echo $q2['id']; ?>"><? echo $q2['titre']; ?></a> (<? echo $q2['date_p']; ?>)</p>
					<? }
				$query2->closeCursor();
				}
			}
			else
			{
			echo 'Pas de résultat.';
			}
	}
	else
	{
	echo 'Veuillez entrer votre recherche !';
	}
	?>


MODIF: Un autre problème survient : j'ai une erreur de fetch.
0
MrPich
 
Arf, je me suis emmêlé avec mes variables. J'essaie de corriger ça.
0
Breub62 Messages postés 2989 Date d'inscription   Statut Membre Dernière intervention   369
 
En fait si c'est peu être bien la requête mais pas directement...
Remplace :
$query2 = $bdd->query('SELECT id, titre, contenu, DATE_FORMAT(datep, \'%d/%m/%Y\') AS date_p FROM articles WHERE titre LIKE '%$search%' OR contenu LIKE '%$search%'');


Par :
$query2 = $bdd->query("SELECT id, titre, contenu, DATE_FORMAT(datep, '%d/%m/%Y') AS date_p FROM articles WHERE titre LIKE '%$search%' OR contenu LIKE '%$search%'");
0

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

Posez votre question
MrPich
 
C'était donc une erreur de quotes ! Haha !
En tout cas merci beaucoup, ça marche comme sur des roulettes. :)
0
Breub62 Messages postés 2989 Date d'inscription   Statut Membre Dernière intervention   369
 
De rien ;-)

Bonne continuation
0