Comment transformer ce code en une fonction

Résolu
greg975 Messages postés 25 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 11 décembre 2007 - 18 nov. 2006 à 02:28
greg975 Messages postés 25 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 11 décembre 2007 - 21 nov. 2006 à 23:41
bonjour à tous j'ai fait une petite application apparament mes requetes se ressemblent elles changent justes sur le critères de selection et sur les clauses ça fait beaucoup de page pr rien  j'aimerai les tranformes en fonction voici un exemple
<?php
require("definitions.php");



$connect= mysql_connect(SERVEUR, NOM, PASS)
 or die('Connexion impossible : ' . mysql_error());
$query=mysql_query("USE ".BASE);



$critere = $_POST['liste'];
$query = "select enseignant.* from
classe,enseignant,comprendre
where enseignant.matriculenseig = comprendre.matriculenseig
and classe.codeclasse=comprendre.codeclasse
and classe.codeclasse="$critere"";



$result = mysql_query($query);
if ($result) {
echo ' voici les enseignants de la classe recherchés
';
echo ''

 .'----
'
.' matriculenseig |nomenseig |prenomenseig |adressenseig |nommatiere |';
while ($ligne = mysql_fetch_array($result)){
echo '----
'
     .''.$ligne['matriculenseig'].', '
     .''.$ligne['nomenseig'].', '
     .''.$ligne['prenomenseig'].', '
     .''.$ligne['adressenseig'].', '
     .''.$ligne['nommatiere'].', ';
       echo '';
}
echo '
';
mysql_free_result ($result);
}
else
{
echo "impossible d'executer la requête de la selection!";
}
mysql_close();
?>



je n'arrive pas à transfomer ce code en fonction de tel sorte que la fonction s'applique aux restes
merci de m'aider

8 réponses

audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
18 nov. 2006 à 14:43
Salut,
<?php
require_once('definitions.php');
$connect = mysql_connect(SERVEUR, NOM, PASS) or die('Connexion impossible : '.mysql_error());
$query = mysql_query('USE '.BASE);

// Fonction
function fonctiongreg($critere) {    $result mysql_query('select enseignant.* from classe,enseignant,comprendre where enseignant.matriculenseig comprendre.matriculenseig AND classe.codeclasse=comprendre.codeclasse AND classe.codeclasse="'.$critere.'"');
    if (isset($result)) {
        $return = ' voici les enseignants de la classe recherchés

                            ----

                    matriculenseig |nomenseig |prenomenseig |adressenseig |nommatiere |';
        while ($ligne = mysql_fetch_array($result))
            $return .= '----

                '.$ligne['matriculenseig'].',
                '.$ligne['nomenseig'].',
                '.$ligne['prenomenseig'].',
                '.$ligne['adressenseig'].',
                '.$ligne['nommatiere'].',
            ';
        $return .= '
';
        mysql_free_result ($result);
    }
    else $return = 'impossible d\'executer la requête de la selection !';
    return $return;
}
// Vérification de la varibale et appelle de la fonction
if (isset($_POST['liste'])) echo greg($_POST['liste']);

mysql_close();
?>

For every choice, a consequence (Fable)
3
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
19 nov. 2006 à 13:12
Désolé pour le flood, j'ai fais une erreur : ce n'est pas echo greg($_POST['liste']); mais echo fonctiongreg($_POST['liste']); et en passant n'utilises pas "*" dans tes requetes MySQL c'est long ... indiques plutôt tous les champs de ta table.

For every choice, a consequence (Fable)
3
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
21 nov. 2006 à 21:43
<?php

function fonctiongreg($select,$from,$where) {
    $result = mysql_query('SELECT '.$select.' FROM '.$from.' WHERE '.$where);
    if (isset($result)) {
        $return = ' voici les enseignants de la classe recherchés

                            ----
';
        $from = explode(',',$from);
  $i = 0;
  while (isset($from[$i])) {
   $return .= ' '.$from[$i].' |';
   $i++;
  }
        while ($ligne = mysql_fetch_row($result)) {
            $return .= '----
';
   $j = 0;
   while ($j !== $i) {
                $return .= ''.$ligne[$j].', ';
    $j++;
   }
            $return .= '';
  }
        $return .= '
';
        mysql_free_result($result);
    }
    else $return = 'Impossible d\'executer la requête de la selection !';
    return $return;
}
if (isset($_POST['liste'])) echo fonctiongreg('enseignant.*','classe,enseignant,comprendre','enseignant.matriculenseig = comprendre.matriculenseig AND classe.codeclasse=comprendre.codeclasse AND classe.codeclasse="'.$_POST['liste'].'"'); // C'est pas bien l'utilisation de * :-P

?>



For every choice, a consequence (Fable)
3
greg975 Messages postés 25 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 11 décembre 2007
19 nov. 2006 à 14:20
merci  de m'avoir aider pour le nom de la fonction je l'ai aussi aperçu pas de pb
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
greg975 Messages postés 25 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 11 décembre 2007
20 nov. 2006 à 22:42
merci  beaucoup pour l'aide. à present si je veux faire une fontion qui m'affiche differents requete comment faire ?
0
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
20 nov. 2006 à 22:46
Différentes requêtes ? c'est à dire ? Quelles requêtes veux tu transformer en fonction ?

For every choice, a consequence (Fable)
0
greg975 Messages postés 25 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 11 décembre 2007
20 nov. 2006 à 23:55
c'est vraie que je ne suis pas assez claire je veux dire pas là une fontion qui me permet d'afficher d'autres informations en changeant  la clause d'affichachage en changeant aussi ce que je veux afficher. est ce qu'on peut faire une tel fontion? 
mille fois merci pour ton aide 
0
greg975 Messages postés 25 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 11 décembre 2007
21 nov. 2006 à 23:41
thank you very much
0
Rejoignez-nous