Problème de requète SQL
Résolu
me
-
me -
me -
Bonjour,
J'ai créé cette applications en PHP pour pouvoir afficher les données d'une base dans un tableau en fonction d'un code qui a été saisie ($bx) :
Mais quant je l'éxecute j'obtient l'erreur suivante:
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère., SQL state 22005 in SQLExecDirect in c:\program files\easyphp\www\stagekevin\bx_mois2.php on line 42
Erreur SQL !
SELECT Date_paiement, Somme_versée_euro, Nom_abonné, Pnom_abonné, CP_abonné, Adrue_abonné, Ville_abonné, Num_véhicule, Num_carte FROM paiement, abonnes, abonnements, vehicules WHERE Num_bx_int='0' AND paiement.num_carte°=abonnements.num_carte AND abonnements.num_véhicule°=vehicules.num_véhicule AND abonnes.num_abonné = vehicules.num_abonné°
Quelqu'un voit il où est le problème?
Merci d'avance ;-)
J'ai créé cette applications en PHP pour pouvoir afficher les données d'une base dans un tableau en fonction d'un code qui a été saisie ($bx) :
<? $base ="C:\Program Files\EasyPHP\www\StageKevin\bd1.mdb"; $connexion = odbc_connect('MS Access Database', 'root', '') or die ('Erreur de connexion1'); if( ! isset( $_POST["bx"] ) ) $_POST["bx"] = 0; $bx=$_POST["bx"]; $sql = "SELECT Date_paiement, Somme_versée_euro, Nom_abonné, Pnom_abonné, CP_abonné, Adrue_abonné, Ville_abonné, Num_véhicule, Num_carte FROM paiement, abonnes, abonnements, vehicules WHERE Num_bx_int='$bx' AND paiement.num_carte°=abonnements.num_carte AND abonnements.num_véhicule°=vehicules.num_véhicule AND abonnes.num_abonné = vehicules.num_abonné°"; $req = odbc_do($connexion, $sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $row = odbc_fetch_array($req); $dir = $row["Date_paiement"]; $dir2 = $row["Somme_versée_euro"]; $dir3 = $row["Nom_abonné"]; $dir4 = $row["Pnom_abonné"]; $dir5 = $row["CP_abonné"]; $dir6 = $row["Adrue_abonné"]; $dir7 = $row["Ville_abonné"]; $dir8 = $row["Num_véhicule"]; $dir9 = $row["Num_carte"]; $datedujour=date("d/m/Y"); echo "<br>"; echo "<table border='2' bgcolor='#FFFFFF' width=''>"; echo "<td width=''><b><div align='center'>$datedujour</div></b></td>"; echo "<td width=''><b><div align='center'></div></b></td>"; echo "<td width=''><b><div align='center'>N° Bordereaux intermédiare: $bx</div></b></td>"; echo "</table>"; echo "<table border='2' bgcolor='#FFFFFF' width=''>"; echo "<tr>"; echo "<td width=''><b><div align='center'>Date paiement</div></b></td>"; echo "<td width=''><b><div align='center'>Somme versée</div></b></td>"; echo "<td width=''><b><div align='center'>Nom</div></b></td>"; echo "<td width=''><b><div align='center'>Prénom</div></b></td>"; echo "<td width=''><b><div align='center'>Adresse</div></b></td>"; echo "<td width=''><b><div align='center'>Code postal</div></b></td>"; echo "<td width=''><b><div align='center'>Ville</div></b></td>"; echo "<td width=''><b><div align='center'>N° Immat</div></b></td>"; echo "<td width=''><b><div align='center'>N° Carte</div></b></td>"; echo " </tr>"; echo " <tr>"; echo "<td width=''><div align='center'>$dir</div></td>"; echo "<td width=''><div align='center'>$dir2</div></td>"; echo "<td width=''><div align='center'>$dir3</div></td>"; echo "<td width=''><div align='center'>$dir4</div></td>"; echo "<td width=''><div align='center'>$dir5</div></td>"; echo "<td width=''><div align='center'>$dir6</div></td>"; echo "<td width=''><div align='center'>$dir7</div></td>"; echo "<td width=''><div align='center'>$dir8</div></td>"; echo "<td width=''><div align='center'>$dir9</div></td>"; echo "</tr>"; echo "</table>"; odbc_close( $connexion); ?>
Mais quant je l'éxecute j'obtient l'erreur suivante:
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère., SQL state 22005 in SQLExecDirect in c:\program files\easyphp\www\stagekevin\bx_mois2.php on line 42
Erreur SQL !
SELECT Date_paiement, Somme_versée_euro, Nom_abonné, Pnom_abonné, CP_abonné, Adrue_abonné, Ville_abonné, Num_véhicule, Num_carte FROM paiement, abonnes, abonnements, vehicules WHERE Num_bx_int='0' AND paiement.num_carte°=abonnements.num_carte AND abonnements.num_véhicule°=vehicules.num_véhicule AND abonnes.num_abonné = vehicules.num_abonné°
Quelqu'un voit il où est le problème?
Merci d'avance ;-)
A voir également:
- Problème de requète SQL
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
1 réponse
Pourquoi mettre '°' dans les noms de champs ?
Sinon je pense que le problème vient du fait que tu entoures 0 de guillemets simples. Or, si c'est un entier qui est attendu, il faudrait avoir ceci :
Dernière chose, commence par vérifier que $_POST["bx"] est un entier avant de faire ta requête... ça t'évitera des injections de code SQL de la part de gentils pirates ;-)
Sinon je pense que le problème vient du fait que tu entoures 0 de guillemets simples. Or, si c'est un entier qui est attendu, il faudrait avoir ceci :
SELECT Date_paiement, Somme_versée_euro, Nom_abonné, Pnom_abonné, CP_abonné, Adrue_abonné, Ville_abonné, Num_véhicule, Num_carte FROM paiement, abonnes, abonnements, vehicules WHERE Num_bx_int=0 AND paiement.num_carte°=abonnements.num_carte AND abonnements.num_véhicule°=vehicules.num_véhicule AND abonnes.num_abonné = vehicules.num_abonné°
Dernière chose, commence par vérifier que $_POST["bx"] est un entier avant de faire ta requête... ça t'évitera des injections de code SQL de la part de gentils pirates ;-)
Merci beaucoup! ;-)
et pour le '°' dans les nom de champs je ne sais pas se n'est pas mois qui est créé la table..
Merci!
Problème résolut!!