Aller au contenu
Zebulon
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Script qui ne fonctionne pas


olly

Messages recommandés

Bonjour les zebulons,

 

 

Voilà j'ai créé un site mais l'une des pages de code (évidemment la plus importante) ne fonctionne pas.

 

Je ne vois pas pourquoi... :chpas:

 

Le but est de recuperer les infos des membres d'une table (bees) mysql. Ces membres correspondent à des criteres émis dans une autre table(demande).

 

Il y a deux actions : la premiére requête compte le nombre de personnes correspondants aux criteres voulus et l deuxiéme liste les coordonées de ce membres selectionnés.

 

Le code de la page php est :

<?php

include('global/haut.php');

include('global/entete.php');

include('global/menus.php');

if(isset($_SESSION['ident']))
{

?>
<!-- Le corps -->
<div id="corps">


<fieldset>

<?php echo 'Bonjour ' . $_SESSION['ident']; ?> bienvenue sur votre espace abonné <br />



<?php	
if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] == "k" OR $_POST['mot_de_passe'] == "a") // Si le mot de passe est bon
{
// On affiche les codes
?>

<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=sport', 'root', '');
}
catch(Exception $e)
{
       die('Erreur : '.$e->getMessage());
}

$reponse = $bdd->prepare('SELECT * FROM demande WHERE ident = ?');
$reponse->execute(array($_SESSION['ident'])); 


$donnees = $reponse->fetch()

?>


<?php
$reponse = $bdd->prepare('SELECT COUNT(*) AS nb_diplome FROM demande where 
 diplome = :diplome and 
 diplome1 = :diplome1 and 
 dpt = :dpt and 
 date_dp >= :date_dp and 
 date_fp <= :date_fp and 
 heure_lud >= :heure_lud and 
 heure_luf <= :heure_luf and 
 heure_mad >= :heure_mad and
 heure_maf <= :heure_maf and
 heure_med >= :heure_med and
 heure_mef <= :heure_mef and
 heure_jed >= :heure_jed and 
 heure_jef <= :heure_jef and 
 heure_ved >= :heure_ved and 
 heure_vef <= :heure_vef and 
 heure_sad >= :heure_sad and
 heure_saf <= :heure_saf and
 heure_did >= :heure_did and 
 heure_dif <= :heure_dif' 
);
$reponse->execute(array(':diplome' => $donnees['diplome'], 
				':diplome1' => $donnees['diplome1'],
				':dpt' => $donnees['dpt'],
				':date_dp' => $donnees['date_dp'],
				':date_fp' => $donnees['date_fp'],
				':heure_lud' => $donnees['heure_lud'],
				':heure_luf' => $donnees['heure_luf'],
				':heure_mad' => $donnees['heure_mad'],
				':heure_maf' => $donnees['heure_maf'],
				':heure_med' => $donnees['heure_med'],
				':heure_mef' => $donnees['heure_mef'],
				':heure_jed' => $donnees['heure_jed'],
				':heure_jef' => $donnees['heure_jef'],
				':heure_ved' => $donnees['heure_ved'],
				':heure_vef' => $donnees['heure_vef'],
				':heure_sad' => $donnees['heure_sad'],
				':heure_saf' => $donnees['heure_saf'],
				':heure_did' => $donnees['heure_did'],
				':heure_dif' => $donnees['heure_dif']
				)
			);

$donnees = $reponse->fetch();
echo $donnees['nb_diplome'];

$reponse->closeCursor(); 

?>
candidats correspondent à vos attentes.
<br />
Voici la liste et les coordonnées des candidats selectionnés :


<?php

$reponse = $bdd->prepare("select b.* from bees b join 
(select cand.idbees from demande cand, demande client where client.ident !='' and client.ident = :ident and cand.idbees !='' 
and client.diplome = cand.diplome and client.diplome1 = cand.diplome1 and client.dpt = cand.dpt
and cand.date_dp <= client.date_dp and cand.date_fp >= client.date_fp 
and cand.heure_lud <= client.heure_lud and cand.heure_luf <= client.heure_luf 
and cand.heure_mad <= client.heure_mad and cand.heure_maf >= client.heure_maf
and cand.heure_med <= client.heure_med and cand.heure_maf >= client.heure_maf
and cand.heure_jed <= client.heure_jed and cand.heure_jef >= client.heure_jef
and cand.heure_ved <= client.heure_ved and cand.heure_vef >= client.heure_vef
and cand.heure_sad <= client.heure_sad and cand.heure_saf >= client.heure_saf
and cand.heure_did <= client.heure_did and cand.heure_dif >= client.heure_dif)
t on t.idbees = b.idbees");
$reponse->execute(array(':ident' =>$_SESSION['ident']));


while ($donnees = $reponse->fetch())
{
?>
   <p>

   <?php echo $donnees['civ']; ?>  <?php echo $donnees['nom']; ?>  <?php echo $donnees['prenom']; ?><br />
   Coordonnées :<br /><?php echo $donnees['adresse']; ?> <?php echo $donnees['cplt_adresse']; ?> <?php echo $donnees['code_postal']; ?> <?php echo $donnees['ville']; ?><br />
   telephone 1: <?php echo $donnees['fixe']; ?> <br />telephone 2 : <?php echo $donnees['gsm']; ?> <br /> email :<?php echo $donnees['email']; ?>
  </p>
<?php
}

$reponse->closeCursor(); 

?>

</fieldset>
<?php
}
else // Sinon, on affiche un message d'erreur
{
	echo '<p>Mot de passe incorrect</p>';
}
?>

</div>

<br />

   <?php 

}
else
echo '<p>Vous n\'êtes pas connecté(e).</p>';
?>	

<?php include("global/pdp.php"); ?>    

</html>

 

la table Bees :

Structure de la table `bees`
--

CREATE TABLE IF NOT EXISTS `bees` (
 `idbees` varchar(255) NOT NULL,
 `mdpbees` varchar(255) NOT NULL,
 `civ` varchar(255) NOT NULL,
 `nom` varchar(255) NOT NULL,
 `prenom` varchar(255) NOT NULL,
 `adresse` varchar(255) NOT NULL,
 `cplt_adresse` varchar(255) NOT NULL,
 `code_postal` varchar(255) NOT NULL,
 `ville` varchar(255) NOT NULL,
 `fixe` varchar(255) NOT NULL,
 `email` varchar(255) NOT NULL,
 `gsm` varchar(255) NOT NULL,
 `cv` char(250) NOT NULL,
 UNIQUE KEY `idbees` (`idbees`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

 

la tables demande :

Structure de la table `demande`
--

CREATE TABLE IF NOT EXISTS `demande` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `diplome` varchar(255) NOT NULL,
 `diplome1` varchar(255) NOT NULL,
 `dpt` varchar(255) NOT NULL,
 `date_dp` date NOT NULL,
 `date_fp` date NOT NULL,
 `lun` int(11) NOT NULL,
 `heure_lud` time DEFAULT NULL,
 `heure_luf` time DEFAULT NULL,
 `mar` int(11) NOT NULL,
 `heure_mad` time DEFAULT NULL,
 `heure_maf` time DEFAULT NULL,
 `mer` int(11) NOT NULL,
 `heure_med` time DEFAULT NULL,
 `heure_mef` time DEFAULT NULL,
 `jeu` int(11) NOT NULL,
 `heure_jed` time DEFAULT NULL,
 `heure_jef` time DEFAULT NULL,
 `ven` int(11) NOT NULL,
 `heure_ved` time DEFAULT NULL,
 `heure_vef` time DEFAULT NULL,
 `sam` int(11) NOT NULL,
 `heure_sad` time DEFAULT NULL,
 `heure_saf` time DEFAULT NULL,
 `dim` int(11) NOT NULL,
 `heure_did` time DEFAULT NULL,
 `heure_dif` time DEFAULT NULL,
 `ident` varchar(255) NOT NULL,
 `idbees` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=42 ;

--

 

Merci de votre aide

Lien vers le commentaire
Partager sur d’autres sites

"ne fonctionne pas" c'est un peu léger comme description. Pourrais-tu dégrossir le travail et nous fournir quelques infos de débug avant qu'on ne se lance dans une étude intensive de ton code ? Tu as des warnings ? Des messages d'erreur ? Pourquoi n'utilises-tu pas des try / catch pour faciliter la récupération des messages d'erreur ?

Lien vers le commentaire
Partager sur d’autres sites

Salut Kewlcat,

 

En fait j'ai avancé pour la première requête j'ai fais le test manuellement sur PhpMyAdmin, et elle fonctionne et me donne le résultat escompté : elle compte bien le nombre d'"idbees" de la table correspondant aux critères.

 

Le problême est qu'à l'encodage en pdo j'ai le résultat du nombre d'"ident" et je ne sais pas comment inversé la chose.

 

La seconde requête ne me donne pas les coordonnées (se trouvant dans la table "bees") des "idbees" selectionnés précédemment (dans la table "demande"°et n'affiche rien du tout.

 

Je reste à ta disposition

 

Merci de ton aide

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...