Page 1 sur 1

recupérer tous les telephones d'un tableau suivant condition

Posté : 23 mai 2006, 20:17
par BeRoots
salut la compagnie :)

Je cherche à récuperer des numero de telephone dans un tableau.
le but est de ne récuperer que ceux dont le champ comité = 'Y' et de les séparer par "-" pour en faire une chaine :-k

voici comment je procede pour récuperer tous les numeros
// recuperation ordonner des infos de la table
$sql = "SELECT * FROM $table WHERE 1"
$result = mysqlquery($sql);

// recuperation dans un tableau
$string_contact_all = ""; // initialisation de la variable de chaine
while($val1 = mysql_fetch_array($result))
{
$id = $val1['id'];
$nom = $val1['nom'];
$prenom = $val1['prenom'];
$phone = $val1['phone'];
$comite = $val1['comite'];

$string_contact_all .= $phone.'-'; // incrementation de la variable de chaine
}
//on enlève le - en fin de chaine
$contact_all = 'substr("$string_contact_all", 0, -1)';

j'aimerai donc faire la même chose depuis ce tableau mais en ne récuperant que les telephone dont le champ comité du tableau est egal à "Y" :-k

si quelqu'un à une idée :wink:

Posté : 23 mai 2006, 20:24
par Vaedan
SELECT * FROM $table WHERE comite = 'Y'

Posté : 23 mai 2006, 20:24
par Cyrano
<?php
// recuperation ordonner des infos de la table
$sql = "SELECT * FROM ". $table .";";
$result = mysqlquery($sql);

$telephones = array();
while($val1 = mysql_fetch_array($result))
{
    $id     = $val1['id'];
    $nom    = $val1['nom'];
    $prenom = $val1['prenom'];
    $phone  = $val1['phone'];
    $comite = $val1['comite'];
    if($comite == "Y")
    {
        $telephones[] = $phone;
    }
}
$liste_tel = implode("-", $telephones);
?>
Plus simple non ?

Posté : 23 mai 2006, 20:46
par BeRoots
@Vaedan: j'aurai du préciser que c'était pour éviter de surcharger mon code mais merci quand même ;)

@Cyrano:

c'est vrai que c'est plus simple à mon avis :P

vue que je doit faire des récuperation pour le comité ou pour tous les membre, comment puis je faire pour avoir les deux cas en sachant que j'ai une variable $groupe= "tous les membres" ou "juste le comité"

merci d'avance :wink:

au faite, joyeux 13000ème post :D

Posté : 23 mai 2006, 21:38
par Cyrano
ben crée deux tableaux :roll:

Posté : 23 mai 2006, 22:33
par BeRoots
j'ai encore un peu de mal avec les tableaux :oops:

j'ai fait ceci:
<?php

// création de 2 tableau contenant les numeros de téléphone comité et non comité
$phone_comite = array();
$phone_noncomite = array();

// incrémentation de chacun d'eux en parcourant un tableau de la table sql

while($val1 = mysql_fetch_array($result))
{
    $id     = $val1['id'];
    $nom    = $val1['nom'];
    $prenom = $val1['prenom'];
    $phone  = $val1['phone'];
    $comite = $val1['comite'];
    if($comite == "Y")
    {
        $phone_comite[] = $phone;
    }
    else
    {
        $phone_noncomite[] = $phone;
    }
}

// mise en forme des deux chaines avec des - entre chaque numero

$string_comite = implode("-", $phone_comite);
$string_noncomite = implode("-", $phone_noncomite);
?>
ainsi, il ne me reste plus qu'à ajouter les deux chaine si je veut tout les numero :-k

qu'en pense tu niveau méthodologie :?:

Posté : 23 mai 2006, 22:45
par Cyrano
Ben voilà, c'était pas tellement compliqué ;)
il te reste effectivement pour la totale à faire un truc du genre :
$liste_complete = $string_comite ."-". $string_noncomite;
Enfin c'est un exemple.

Posté : 23 mai 2006, 22:57
par BeRoots
encore merci cyrano :wink:

au fait une dernière petite question avant de finir:

pourquoi mettre un ";" à la fin de la requete sql plutot que "WHERE 1" :-k

Posté : 24 mai 2006, 07:32
par Cyrano
Le WHERE 1 est ajouté par phpMyAdmin et la raison profonde m'a toujours un peu échappé, je n'utilise jamais cette clause comme ça.

Le ";" est facultatif, mais c'est devenu une habitude, si tu testes tes requêtes en ligne de commande, oublier ce ";" aura pour conséquence que la requête ne sera pas exécutée, le client attendant la suite de la requête. C'est donc un signe indiquant la fin de l'instruction.

Posté : 24 mai 2006, 18:22
par BeRoots
ok :wink:

Encore merci à toi Cyrano :D

je met resolu.