Erreur sql
Résolu/Fermé
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
-
1 juin 2007 à 15:25
fouroulou - 22 juin 2008 à 01:26
fouroulou - 22 juin 2008 à 01:26
A voir également:
- Erreur sql
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Sql lister les tables ✓ - Forum Programmation
- Code erreur f3500-32 ✓ - Forum Bbox Bouygues
5 réponses
andrewwk
Messages postés
197
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
17 avril 2013
9
1 juin 2007 à 15:30
1 juin 2007 à 15:30
Mais bar correspond à quoi dans ta requete car quand tu lui dis BAR faut présiser dans quoi ?? !!
webtotoche
Messages postés
69
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2007
7
1 juin 2007 à 15:37
1 juin 2007 à 15:37
Salut !
1. Ta clause " WHERE \ "Bar\" est incomplète.
Where activite = \"bar\" serait mieux.
2. Mais avec la clause WHERE ainsi libellée la requête ne va te retourner qu'un enregistrement, avec un seul champ activite et qui ne contiendra qu'une valeur : bar. Ce n'est pas ce que tu souhaites, n'est-ce pas ?
Tu veux afficher Societe Tel Adresse ? Place-les dans le select :
Vire le LIMIT car s'il y a plus de trente bars dans la table la requête ne te retournera que les 30 premiers trouvés...
Enfin, le DISTINCT est superflu à mon avis, mais ça peut faire l'objet d'une autre discussion.
(en revanche, afficher des résultats avec des doublons c'est pas propre)
Cela répond-il à ta question ?
_
1. Ta clause " WHERE \ "Bar\" est incomplète.
Where activite = \"bar\" serait mieux.
2. Mais avec la clause WHERE ainsi libellée la requête ne va te retourner qu'un enregistrement, avec un seul champ activite et qui ne contiendra qu'une valeur : bar. Ce n'est pas ce que tu souhaites, n'est-ce pas ?
Tu veux afficher Societe Tel Adresse ? Place-les dans le select :
SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = 'bar'
Vire le LIMIT car s'il y a plus de trente bars dans la table la requête ne te retournera que les 30 premiers trouvés...
Enfin, le DISTINCT est superflu à mon avis, mais ça peut faire l'objet d'une autre discussion.
(en revanche, afficher des résultats avec des doublons c'est pas propre)
Cela répond-il à ta question ?
_
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
1 juin 2007 à 18:06
1 juin 2007 à 18:06
merci infiniment de ton aide, tu me sauves la vie !
on passe d'une ereur sql a un moins méchant
Parse error: syntax error, unexpected T_STRING in /home.8/p/a/u/paunight/www/barsTest4.php on line 63.
La ligne 63 étant précisement
$sql = SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = 'bar'.
A part remplacer les ' ' par " " , je ne vois pas .
on passe d'une ereur sql a un moins méchant
Parse error: syntax error, unexpected T_STRING in /home.8/p/a/u/paunight/www/barsTest4.php on line 63.
La ligne 63 étant précisement
$sql = SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = 'bar'.
A part remplacer les ' ' par " " , je ne vois pas .
webtotoche
Messages postés
69
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2007
7
>
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
1 juin 2007 à 18:17
1 juin 2007 à 18:17
Tu initialise $sql avec une chaine de caractères, donc... Tu dois encadrer ta chaine par des quotes simples ou des double-quotes...
( ce que je t'avais indiqué c'était la requête, pas l'initialisation de la variable $sql)
(Oui, je sais, je suis pas gentil ;-) )
_
$sql = "SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = 'bar' "
( ce que je t'avais indiqué c'était la requête, pas l'initialisation de la variable $sql)
(Oui, je sais, je suis pas gentil ;-) )
_
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
1 juin 2007 à 18:57
1 juin 2007 à 18:57
en rajoutant le ; et les ' '
j'ai à nouveau une Erreur SQL !
SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = Bar
Unknown column 'Bar' in 'where clause'.
Pour lui le nom de la colonne, c'est activité( enfin je pense), mais le rédiger ou comment scinder ma table pour que ce soit moins compliqué
pas que je ne veuille pas apprendre, au contraire, mais j'ai perdu trois jours de boulot sur cette erreur et il faudrai que j'avance sur le site.
J'ai donc "contourné" le problème en créant une table bar.
et là, ça marche
$sql = 'SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = Bar';
j'ai à nouveau une Erreur SQL !
SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = Bar
Unknown column 'Bar' in 'where clause'.
Pour lui le nom de la colonne, c'est activité( enfin je pense), mais le rédiger ou comment scinder ma table pour que ce soit moins compliqué
pas que je ne veuille pas apprendre, au contraire, mais j'ai perdu trois jours de boulot sur cette erreur et il faudrai que j'avance sur le site.
J'ai donc "contourné" le problème en créant une table bar.
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,DB_SERVER_PASSWORD) or die('Impossible de se connecter : ' . mysql_error()); // sélection de la base de données mysql_select_db(DB_DATABASE, $connect); $sql = 'SELECT DISTINCT Societe, Tel, Adresse FROM bar'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $res = mysql_num_rows($req); echo 'Il y a '.$res.' enregistrement(s) dans la rubrique bar.<p> </p>'; while($data = mysql_fetch_assoc($req)) { // on affiche les informations de l'enregistrement en cours echo'<table><tr><td><b>'.$data['Societe'].'</b></td><td>'.$data['Tel'].'</td><td>'.$data['Adresse'].'</td><p> </p></tr>'; } ?>
et là, ça marche
webtotoche
Messages postés
69
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2007
7
1 juin 2007 à 19:17
1 juin 2007 à 19:17
$sql = 'SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = Bar';et
$sql = "SELECT DISTINCT societe, adresse, tel, adresse FROM shopping WHERE activite = 'bar' "ce n'est pas la même chose.
Tu as ajouté des quotes simples pour encadrer ta requête ( c'est bien ) mais tu as enlevé celles qui encadraient ta chaîne bar ( c'est mal ).
On peut détailler en privé si tu le souhaites.
_
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
>
webtotoche
Messages postés
69
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2007
2 juin 2007 à 09:26
2 juin 2007 à 09:26
coucou,
merci encore de ton aide!
Oui je veux bien détailler tout ça pour bien comprendre comment ça marche.
parce que mon esquive du problème me génère plus de boulot vu qu'il faut que je recrée les tables pour chaque catégorie.
Quoi qu'il en soit, je test le premier code corrigé et je te dis ce qu'il en est.
;)
merci encore de ton aide!
Oui je veux bien détailler tout ça pour bien comprendre comment ça marche.
parce que mon esquive du problème me génère plus de boulot vu qu'il faut que je recrée les tables pour chaque catégorie.
Quoi qu'il en soit, je test le premier code corrigé et je te dis ce qu'il en est.
;)
webtotoche
Messages postés
69
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2007
7
>
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
2 juin 2007 à 12:44
2 juin 2007 à 12:44
Salut !
Ton esquive du problème est, c'est bien le cas, une esquive (dont tu as vu les limites) et - Boudiou ! - la politesse me retient de dire ce que j'en pense :D
mon deuxième est indispensable à la syntaxe de mon tout
mon troisième est le service de courrier de google
mon tout est mon adresse e-mail si tu veux poursuivre en privé :-)
_
Oui je veux bien détailler tout ça pour bien comprendre comment ça marche.Les problèmes que tu évoques sont le fruit d'erreurs de syntaxe et ne sont pas méchants en soi ( mais c'est vrai que ça énerve).
Ton esquive du problème est, c'est bien le cas, une esquive (dont tu as vu les limites) et - Boudiou ! - la politesse me retient de dire ce que j'en pense :D
<mode CAPTCHA on>mon premier est identique à mon pseudo sur ccm
mon deuxième est indispensable à la syntaxe de mon tout
mon troisième est le service de courrier de google
mon tout est mon adresse e-mail si tu veux poursuivre en privé :-)
<mode CAPTCHA off>
_
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
>
webtotoche
Messages postés
69
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2007
2 juin 2007 à 10:05
2 juin 2007 à 10:05
mysql_select_db(DB_DATABASE, $connect); $sql = "SELECT DISTINCT societe, tel, adresse FROM shopping WHERE activite = 'bar' "; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $total = mysql_num_rows($result); // si on a récupéré un résultat on l'affiche. if($total) { // debut du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les titres prénom et surnom dans 2 colonnes echo '<tr>'; echo '<td bgcolor="#669999"><b><u>Société</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Tel</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Adresse</u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. while($row = mysql_fetch_array($result)) { echo '<tr>'; echo '<td bgcolor="#CCCCCC">'.$row["Societe"].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row["Tel"].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row["Adresse"].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; // fin du tableau. } else echo 'Pas d\'enregistrements dans cette table...'; // on libère le résultat mysql_free_result($result); ?>
me donne maintenant :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home.8/p/a/u/paunight/www/barsTest.php on line 64
Pas d'enregistrements dans cette table...
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home.8/p/a/u/paunight/www/barsTest.php on line 89
Je l'aurai un jour, je l'aurai...
webtotoche
Messages postés
69
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
3 novembre 2007
7
>
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
2 juin 2007 à 12:27
2 juin 2007 à 12:27
Salut !
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $total = mysql_num_rows($result);Tu affectes le résultat de la requête à $req et tu lis le nombre de lignes de $result...
allhambra
Messages postés
18
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
28 décembre 2007
2 juin 2007 à 21:23
2 juin 2007 à 21:23
recapitulatif :
le code corrigé est :
Un énorme merci à webtotoche pour l'implication voir l'acharnement dont il à fait preuve, pour webtotoche hip hip hip....
le code corrigé est :
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,DB_SERVER_PASSWORD) or die('Impossible de se connecter : ' . mysql_error()); mysql_select_db(DB_DATABASE, $connect); $sql = "SELECT DISTINCT societe, tel, adresse FROM shopping WHERE activite = 'Bar' "; $result = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $total = mysql_num_rows($result); echo 'total ='.$total.'<br><br>'; // si on a récupéré un résultat on l'affiche. if($total>0) { // debut du tableau // lecture et affichage des résultats sur 3 colonnes, 1 résultat par ligne. while($row = mysql_fetch_array($result)) { echo '<pre>'; print_r($row); echo '/<pre>'; } echo '</table>'."\n"; // fin du tableau. } else echo 'Pas d\'enregistrements dans cette catégorie...'; // on libère le résultat mysql_free_result($result); ?>
Un énorme merci à webtotoche pour l'implication voir l'acharnement dont il à fait preuve, pour webtotoche hip hip hip....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question