Page 1 sur 1

afficher ligne de BDD en fonction de l'ID

Posté : 06 mars 2012, 16:14
par kevin76110-1
Bonjour,

Je développe en ce moment même une petite plateforme pour saisir des données dans une base de données.
J'ai besoin d'être aiguillé sur un petit point:

je récupère un id en get.
par exemple 13.
Je cherche à afficher uniquement les lignes où, dans la base de données, l'id2 soit 13.
( il peut y en avoir plusieurs bien sûr, donc il va me falloir une boucle, mais ne sont pas classés dans la base. il peut y avoir une ligne avec un id=15, une ligne avec id=1 etc.).

Quelqu'un peut-il me diriger vers une voie ?

Merci.

K.

Re: afficher ligne de BDD en fonction de l'ID

Posté : 06 mars 2012, 17:07
par xTG
Voici un cours sur l'utilisation de requêtes SQL pour interroger une table : http://phpdebutant.org/article66.php
Sachant qu'une requête ce n'est qu'une chaîne de caractère.
Et sachant que tout chaîne de caractère peut être combinée en PHP avec le point. ;)

Re: afficher ligne de BDD en fonction de l'ID

Posté : 06 mars 2012, 17:48
par kevin76110-1
Donc, si je comprends bien, ma requette sera :
$select = 'SELECT id_client, nom_client, chiffre_affaire_client WERE id_client IS  'id_client_récupéré_en_get'"; 
Ensuite je fais un affichage.
C'est cela ?

Re: afficher ligne de BDD en fonction de l'ID

Posté : 06 mars 2012, 18:08
par xTG
Tu as compris. ;)

Re: afficher ligne de BDD en fonction de l'ID

Posté : 06 mars 2012, 18:26
par kevin76110-1
Hé non, il doit y avoir un petit soucis quelque part.
$idcli = $_GET['id_client_récupéré_en_get'];

$select = 'SELECT id_client,nom_client, chiffre_affaire_client FROM ma_table WERE id_client IS "idcli" ';
L'erreur doit être minime. J'ai tenté à la place du IS, LIKE, même erreur.
Je pense qu'on n'inclue pas une variable comme cela, dans une requête SQL.

Re: afficher ligne de BDD en fonction de l'ID

Posté : 06 mars 2012, 19:11
par xTG
$select = 'SELECT id_client,nom_client, chiffre_affaire_client FROM ma_table WERE id_client IS ' . $idcli;
Concaténation. ;)

Re: afficher ligne de BDD en fonction de l'ID

Posté : 07 mars 2012, 11:01
par kevin76110-1
Hum ... Une erreur SQL ...
Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id_client IS 1' at line 1
<?
$idcli = $_GET['id_client'];

$select = 'SELECT id_client,nom_client, chiffre_affaire_client FROM ma_table WERE id_client IS ' . $idcli;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

...

Re: afficher ligne de BDD en fonction de l'ID

Posté : 07 mars 2012, 12:09
par xTG
Remplaces le "IS" par "=", cet opérateur n'est pas supporté par tous les SGBD pour tous les types de données.

Re: afficher ligne de BDD en fonction de l'ID

Posté : 07 mars 2012, 12:26
par kevin76110-1
Hé non, toujours la même erreur.

Purée, j'ai beau lire et relire le code 25 fois.

Je ne vois pas où est l'erreur :O

Re: afficher ligne de BDD en fonction de l'ID

Posté : 07 mars 2012, 12:27
par xTG
Ahah vicieuse ! Il manque un H à WHERE ;)

Re: afficher ligne de BDD en fonction de l'ID

Posté : 07 mars 2012, 12:41
par kevin76110-1
J'ai été me chercher un café quand j'ai vu que je ne savais même plus écrire WHERE.

Mais ... le soucis est toujours là :O

Re: afficher ligne de BDD en fonction de l'ID

Posté : 07 mars 2012, 12:55
par xTG
Quel est ton code corrigé ?
Au passage, utiliser les short_open_tag (<?) c'est s'aventurer vers des problèmes de compatibilité ascendante. ;)

Re: afficher ligne de BDD en fonction de l'ID

Posté : 07 mars 2012, 13:08
par kevin76110
J'ai corrigé les short open tag partout (il n'y avait pas que là qu'il y avait des soucis.

Voici exactement le code complet:

<?php
$idcli = $_GET['id_client'];

$select = 'SELECT id_objectif, id_client, id_levier, id_support, id_campagne, date_semaine, date_annee, nb_pdt_fl_comp, nb_pdt_act_comp, nb_aff_insc, nb_aff_act, imp, clic, visite_h_reb, conversion, CA, IC, conv_dedup, CA_dedup FROM objectif WHERE id_client IS ' . $idcli;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

En enlevant la partie
WHERE id_client IS ' . $idcli;
cela fonctionne ( à ceci près, qu'il ne trie pas les résultats ^^). Donc le soucis vient sûrement de là.

Re: afficher ligne de BDD en fonction de l'ID

Posté : 07 mars 2012, 13:10
par kevin76110
Yes c'est bon, c'est ok :)

J'ai re-testé avec
WHERE id_client [b]=[/b] ' . $idcli;
et cela passe parfaitement :)

Merci beaucoup de ton aide :D