problème avec foreach

Eléphant du PHP | 180 Messages

15 janv. 2007, 18:07

bonjour,

mon code doit me renvoyer des valeurs via comande sql. J'ai une err générée sur le foreach

<table border>
<html>
<body bgcolor=gray>
<table border>
<tr>
<th>Description de la sauvegarde</th>
<th>Date</th>
<th>Heure</th>
<th>Num</th>
<th>Résultat</th>
</tr>

<?php
// La requète SQL

$sql = 'SELECT JAction , JDate , JHeure , JInfo FROM journaltest WHERE JAction like \'Description :%\'';

sqldb = new PDO("mysql:host=localhost;dbname=test","root","") or die ("impossible d'ouvrir bdd !");

// Exécution de la requète

$stmt = $sqldb->prepare($sql);
$stmt->execute();

foreach ($sqldb->query($sql) AS $row)
   {
     $JAction1 = $row['JAction'];
		$JDate1 = $row['JDate'];
		$JHeure1 = $row['JHeure'];
		$JInfo1 = $row['JInfo'];
     	echo "<tr><td>$JAction1</td><td>$JDate1</td><td>$JHeure1</td><td>$JInfo1</td><td>$JResultat</td></tr>";
	}

?>
</table>
</body>
</html>
  
[/code]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 janv. 2007, 18:42

La base d'une bonne aide sur un forum, c'est de donner le message d'erreur ;)

Il contient la plupart du temps la solution du soucis et nous le donner nous permet de t'aider le plus justement possible :D
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 180 Messages

15 janv. 2007, 22:28

le message est

Warning: Invalid argument supplied for foreach() in C:\wamp\www\Developtest\tableautest.php on line 33

Eléphant du PHP | 180 Messages

15 janv. 2007, 22:56

Bonsoir,
le message est

Warning: Invalid argument supplied for foreach() in C:\wamp\www\Developtest\tableautest.php on line 33
A moins d'une erreur de copier-coller je crois qu'il manque un $ devant sqldb ci-dessous.
sqldb = new PDO("mysql:host=localhost;dbname=test","root","") or die ("impossible d'ouvrir bdd !");
A+

Didier
Giant steps are what you take ... walking on the moon ;-)

Eléphant du PHP | 180 Messages

15 janv. 2007, 23:12

c'est une err de copier coller j'ai bien le $

Eléphant du PHP | 180 Messages

15 janv. 2007, 23:18

c'est une err de copier coller j'ai bien le $
Désolé ;-)
Giant steps are what you take ... walking on the moon ;-)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 janv. 2007, 10:04

Le message signifie que ce que tu passes au foreach n'est pas un tableau.

Quel est le retour de ta méthode $sqldb->query($sql) ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 180 Messages

16 janv. 2007, 10:11

c'est à dire

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 janv. 2007, 10:19

si tu fait var_dump($sqldb->query($sql)), tu obtients quoi ?

Est-ce que cette méthode retourne bien un tableau en fait :?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 180 Messages

16 janv. 2007, 10:56

cela me revoi "bool(false)" pourtant cette façon de procéder marche sur un autre script que j'utilise.

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 11:08

Bonjour,
cela me revoi "bool(false)" pourtant cette façon de procéder marche sur un autre script que j'utilise.
Je ne suis pas sur de ce que tu nous dis.

Tu fais un "prepare" par contre pas de ? ou bien de :qq_chose dans la requête ???

Ensuite pas de bindParam() ou bien execute(Array(...)) ???

Il te manque des choses essentielles ou bien tu mélanges l'utilisation de "exec()" avec "execute()".

Tu dois revoir la façon d'utiliser PDO.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein