Problème variable dans requete SQL
Résolu
naokylon
Messages postés
90
Date d'inscription
Statut
Membre
Dernière intervention
-
naokylon Messages postés 90 Date d'inscription Statut Membre Dernière intervention -
naokylon Messages postés 90 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterai faire un tableau avec divers requète contenu dans une boucle for.
Lorsque je fais cela:
Les erreures qui arrivent sont une suite de warning, qui ne me remplissent pas le tableau
Warning: Division by zero in c:\program files\easyphp1-8\www\site_ft\taux_production.php on line 51
(la dernière ligne, celle où il y a l'echo -> il croit que $conge = 0
J'ai donc essayé de changer la requète en question:
Au lieu de: SELECT * FROM `conge` WHERE sem = '$i+1'
j'ai mis: SELECT * FROM `conge` WHERE sem = '20' et avec d'autres chiffres aussi (les meme que ceux qu'il doit prendre automatiquement dans la boucle)
et la miracle ca marche...
Je ne comprend pas pourquoi la requète de base ne marche pas, étant donné que j'ai aussi utiliser la meme synthaxe pour les requètes précédentes...
Pouvez-vous m'aider SVP?
j'en ai vraiement besoin!!
Merci
Je souhaiterai faire un tableau avec divers requète contenu dans une boucle for.
Lorsque je fais cela:
<p> <table width=762 height="32" border=3 BGCOLOR=white> <tr BGCOLOR=white> <td><div align="center"><strong>Semaine</strong></div></td> <?php for ($i=($semaine-$nbchoisit); $i<($semaine); $i++){ echo '<td width="54"><div align="center"><strong>S'.$i.'</strong></div></td>'; } ?> </tr><tr><td><div align="center"><strong>DEZOBRY</strong></div></td> <?php for ($i=($semaine-$nbchoisit); $i<($semaine); $i++){ $querys1 = "SELECT COUNT(*) AS nombre_as FROM `table` INNER JOIN `date` ON date.jour = table.DatedagrementOEIE WHERE CAF = 'DEZOBRY' AND date.semaine = '$i+1'"; $querys2 = "SELECT COUNT(*) AS nombre_as FROM `42c` WHERE historique = 'EL_DEZOBRY' AND semaine = '$i+1'"; $querys3 = "SELECT * FROM `conge` WHERE sem = '$i+1'"; $retour11 = mysql_query($querys1); $retour22 = mysql_query($querys2); $retour33 = mysql_query($querys3); $retour1 = mysql_fetch_array($retour11); $retour2 = mysql_fetch_array($retour22); $retour3 = mysql_fetch_array($retour33); $eel = $retour1['nombre_as'] * $poids_eel; $filtrage = $retour2['nombre_as'] * $poids_filtrage; $conge = $retour3['DEZOBRY']; echo '<td><div align="center">'.($eel + $filtrage) / $conge.'</div></td>'; } ?> </tr> </table>
Les erreures qui arrivent sont une suite de warning, qui ne me remplissent pas le tableau
Warning: Division by zero in c:\program files\easyphp1-8\www\site_ft\taux_production.php on line 51
(la dernière ligne, celle où il y a l'echo -> il croit que $conge = 0
J'ai donc essayé de changer la requète en question:
Au lieu de: SELECT * FROM `conge` WHERE sem = '$i+1'
j'ai mis: SELECT * FROM `conge` WHERE sem = '20' et avec d'autres chiffres aussi (les meme que ceux qu'il doit prendre automatiquement dans la boucle)
et la miracle ca marche...
Je ne comprend pas pourquoi la requète de base ne marche pas, étant donné que j'ai aussi utiliser la meme synthaxe pour les requètes précédentes...
Pouvez-vous m'aider SVP?
j'en ai vraiement besoin!!
Merci
A voir également:
- Problème variable dans requete SQL
- Logiciel sql - Télécharger - Bases de données
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Sql (+) - Forum Programmation
- Variable d'environnement temp - Forum Word
- Sql lister les tables ✓ - Forum Programmation
2 réponses
Salut,
Essais avec
'$i++'
Et sinon incrément avant
$i=$i+1;
'$i'
le mieux étant de mettre un echo pour voir la valeur de $i juste avant la requète (en mettant 20 pour pas faire buger le script).
Par contre je n'ai pas trouvé la division par zero dans ton script ???
Essais avec
'$i++'
Et sinon incrément avant
$i=$i+1;
'$i'
le mieux étant de mettre un echo pour voir la valeur de $i juste avant la requète (en mettant 20 pour pas faire buger le script).
Par contre je n'ai pas trouvé la division par zero dans ton script ???
Diviser par 1 c'est pas vraiment mieux que 0 :p
Merci pour ces idées
ma division par zéro se trouve sur la dernière ligne
avec $conge qui était toujours égal à 0
j'ai modifier le script:
au lieu de mettre ma requete
j'ai fais:
et ca marche...
je ne comprend pas vraiment pourquoi, mais bon, je vais y garder!
merci pour tout!
salut,
finalement j'ai réussi à lire…
l'opération ne s'effectue pas, c'est tout.
le serveur te renvoie la valeur de la variable $i et les caractères "+1". donc ta requête contient "0" (false).
par ailleurs pour tes tables et tes champs tu devrais éviter d'utiliser 'date' qui est un mot réservé de sql.
Merci!!
Je viens de voir que j'avais moulte travail a faire encore, car il faut que je modifi cela sur plusieurs pages...
Je pensais que cela marchait de mettre dans la requète sql, car j'avais un résultat dans les requètes précédentes!
Merci pour l'astuce du 'date'!