Création
d'entreprise
Posez votre question Signaler

Erreur PHP/requête SQL division by zero

MrPich - Dernière réponse le 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 ;)
Lire la suite 

Erreur PHP/requête SQL division by zero »

6 réponses
Réponse
+0
moins plus
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?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Arf, je me suis emmêlé avec mes variables. J'essaie de corriger ça.
Ajouter un commentaire
Réponse
+0
moins plus
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%'");
Ajouter un commentaire
Réponse
+0
moins plus
C'était donc une erreur de quotes ! Haha !
En tout cas merci beaucoup, ça marche comme sur des roulettes. :)
Breub62- 23 juil. 2010 à 12:26
De rien ;-)

Bonne continuation
Ajouter un commentaire
Ce document intitulé « Erreur PHP/requête SQL division by zero » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?