Erreur PHP/requête SQL division by zero

Fermé
MrPich - 23 juil. 2010 à 12:08
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 23 juil. 2010 à 12:26
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 ;)

A voir également:

5 réponses

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juil. 2010 à 12:10
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
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
Arf, je me suis emmêlé avec mes variables. J'essaie de corriger ça.
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juil. 2010 à 12:19
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
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 lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juil. 2010 à 12:26
De rien ;-)

Bonne continuation
0