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
- 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
- Jointure sql ✓ - Forum MySQL
- Erreur de requete facebook - Forum Facebook
- Sql lister les tables ✓ - Forum Programmation
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!!