IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

php et mysql


Sujet :

PHP & Base de données

  1. #1
    Membre très actif
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2010
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 222
    Par défaut php et mysql
    bonjour ! je dois faire des recherches via des listes deroulantes , il me renvoie que le premier , quand je selectionne un autre choix rien ne s'affiche et pourtant ca existe dans ma base
    requete.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
     
        $connection= mysql_connect ("localhost" , "root" ,"");
    	$db="cv";
       mysql_select_db ($db, $connection);
     
       $choix = $_POST['specialite'];
     
    $requete = mysql_query("SELECT * FROM personne where specialite='".$choix."'");
     
    echo "<table border='1'>";
     
    		echo "<tr> 
    				<th>NOM</th> 
    				<th>PRENOMS</th> 
    				<th>EMAIL</th>
    				<th>AGE</th>
    				<th>MENTION</th>
    				<th>nombres d'années experience </th>
    				<th>NATIONALITE</th>
    				<th>TELEPHONE</th>
    			</tr>";
     
     
    		while ($row = mysql_fetch_array($requete, MYSQL_ASSOC)) {
     
    			echo "<tr>"; 
    				echo "<td>".$row['nom']."</td>";
    				echo "<td>".$row['prenoms']."</td>";
    				echo "<td>".$row['email']."</td>";
    				echo "<td>".$row['age']."</td>";
    				echo "<td>".$row['mention']."</td>";
    				echo "<td>".$row['experience']."</td>";
    				echo "<td>".$row['nationalite']."</td>";
    				echo "<td>".$row['telephone']."</td>";
     
    			echo "</tr>";
    		}
    	echo "</table>";
     
     ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <form name="formulaire" action="requete.php" method="POST" >
                <table width=800 >
     
                        <td>
                            <SELECT name="specialite"> 
                                <OPTION> Selectionnez toutes les personnes en ---  </OPTION>
                                <OPTION value="reseaux" > reseaux </OPTION>
                                <OPTION value="bases de donnees"> bases de données </OPTION>
                                <OPTION value="developpement" > developpement </OPTION>							
                        	</SELECT><br><br><br>
    						<SELECT name="experience"> 
                                <OPTION> Selectionnez les personnes ayant ---  </OPTION>
                                <OPTION value="3" > 3 ans d'experience </OPTION>
                                <OPTION value="4"> 4 ans d'experience  </OPTION>
                                <OPTION value="5" > 5 ans d'experience </OPTION>
    							<OPTION value="0" > + de 5 ans d'experience </OPTION>
                        	</SELECT><br><br><br>
    						<SELECT name="mention"> 
                                <OPTION> Selectionnez les personnes ayant une mention ---  </OPTION>
                                <OPTION value="passable" > passable </OPTION>
                                <OPTION value="assez bien"> assez bien </OPTION>
                                <OPTION value="bien" > bien </OPTION>
    							<OPTION value="tres bien" > trés bien</OPTION>
    							<OPTION value="excellent" > excellent</OPTION>
                        	</SELECT><br><br><br>
    						<input type="submit" name="valider" value="valider"></td></tr>
    						</table>						
    						</form>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    commence par prendre de BONNES HABITUDES :
    1-> indentation (tabulation) pour rendre le code plus facile à lire
    2-> "sortir" le code html du code php (éviter de les mélanger !)
    3-> les balises s'écrivent en minuscules (remplacer <OPTION> par <option>, ...)

    Ton 1er script devient alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    	$connection= mysql_connect ("localhost" , "root" ,"");
    	$db="cv";
    	mysql_select_db ($db, $connection);
    	$choix = $_POST['specialite'];
    	$choix = mysql_real_escape_string($choix); // !!! IMPORTANT !!! PROTECTION avant envoi de requete a la BdD !!
    	$requete = mysql_query("SELECT * FROM personne where specialite='".$choix."';");
    ?>
    	<table border="1">
    		<tr> 
    			<th>NOM</th> 
    			<th>PRENOMS</th> 
    			<th>EMAIL</th>
    			<th>AGE</th>
    			<th>MENTION</th>
    			<th>nombres d'années experience </th>
    			<th>NATIONALITE</th>
    			<th>TELEPHONE</th>
    		</tr>
    <?php	while ($row = mysql_fetch_array($requete)) { ?> 
    		<tr>
    			<td><?php echo $row['nom']; ?></td>
    			<td><?php echo $row['prenoms']; ?></td>
    			<td><?php echo $row['email']; ?></td>
    			<td><?php echo $row['age']; ?></td>
    			<td><?php echo $row['mention']; ?></td>
    			<td><?php echo $row['experience']; ?></td>
    			<td><?php echo $row['nationalite']; ?></td>
    			<td><?php echo $row['telephone']; ?></td>
    		</tr>
    <?php	} ?>
    	</table>
    $choix = mysql_real_escape_string($choix);
    => !!! IMPORTANT !!! PROTECTION avant envoi de requete a la BdD !!


    et le 2eme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    	<form name="formulaire" method="post" action="./requete.php">
    		<p>
    			<select name="specialite">
    				<option value="">sélectionnez toutes les personnes en ---</option>
    				<option value="reseaux" > reseaux </option>
    				<option value="bases de donnees"> bases de données </option>
    				<option value="developpement" > developpement </option>							
    			</select>
    		</p>
    		<p>
    			<select name="experience">
    				<option value="">sélectionnez les personnes ayant ---</option>
    				<option value="3" > 3 ans d'experience </option>
    				<option value="4"> 4 ans d'experience  </option>
    				<option value="5" > 5 ans d'experience </option>
    				<option value="0" > + de 5 ans d'experience </option>
    			</select>
    		</p>
    		<p>
    			<select name="mention">
    				<option value="">sélectionnez les personnes ayant une mention ---</option>
    				<option value="passable" > passable </option>
    				<option value="assez bien"> assez bien </option>
    				<option value="bien" > bien </option>
    				<option value="tres bien" > trés bien</option>
    				<option value="excellent" > excellent</option>
    			</select>
    		</p>
    		<p>
    			<input type="submit" name="valider" value="valider">
    		</p>
    	</form>
    C'est quand même plus propre comme ca, non ?
    Et PLUS FACILE à DEBOGUER ...
    Dernière modification par Invité ; 03/07/2011 à 19h32.

  3. #3
    Membre très actif
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2010
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 222
    Par défaut merci mais ...
    je voudrais savoir ou se trouve mon problème , un autre soucis aussi quand je sélectionne "base de données" ou "tres bien" , pour me sortir ces gens qui ont ces critères rien ne s'affiche et pourtant ca existe dans ma base
    merci d'avance

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Des trois listes déroulantes que tu affiches, tu n'utilise que les données en provenance de la première.

    Construit une requête de sélection qui prends en compte tous les résultats de ton formulaire, ça ne va pas se faire automatiquement.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    Bonjour!
    J'ai un petit problème ou j'espère que vous pouvez m'aider. Merci d'avance!
    Voici ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT PERSON_ID, SUM( TASK_ID )
    FROM task
    WHERE PERSON_ID = '1'
    AND TASK_ID =1
    GROUP BY PERSON_ID
    Mais mon problème je dois mentionner les taches entre deux dates précise!
    Comment insérer sa dans ce code?
    et comment l'écrire avec programmation orienté objet?
    j'espère que vous pouvez m'aider!
    Merci.

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    @nina241
    1/ Ouvre un nouveau topic
    2/ Utilise la balise [code]
    3/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql ="SELECT PERSON_ID, SUM( TASK_ID )
    FROM task
    WHERE PERSON_ID = '1'
    AND TASK_ID =1
    AND DATE_TASK BETWEEN ".$date_debut." AND ".$date_fin."
    GROUP BY PERSON_ID";

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    Merci pur votre réponse!

    Mais pour ma table 'TASK' j'ai que les deux champs ' TASK_BEGIN_TS' et 'TASK_END_TS' ! donc je vais écrire quoi à la place de 'DATE_TASK' ?
    Merci d'avance.

  8. #8
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql ="SELECT PERSON_ID, SUM( TASK_ID )
    FROM task
    WHERE PERSON_ID = '1'
    AND TASK_ID =1
    AND TASK_BEGIN_TS= ".$date_debut." 
    AND TASK_END_TS= ".$date_fin."
    GROUP BY PERSON_ID";

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    Merci!

    J'ai essayé votre code mais il m'affiche sa :
    #1064 - 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 '$sql =&quot;SELECT PERSON_ID, SUM( TASK_ID ) FROM task WHERE PERSON_ID = '1' AND T' at line 1

  10. #10
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Ouvre un nouveau topic avec ton problème, ce sera beaucoup plus clair pour tout le monde.

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    D'accord!

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    Désolé j'ai fais une erreur!

    en réalité je dois filtrer une autre table qui est 'table timesheet'; elle a comme champs : TS_ID, WBE_ID, INVOCEITEM_ID, TS_DATE, TS_QTY et PERSON_ID.

    je dois calculer le nombre de jours travaillés entre deux dates par un travailleur X.

    je sais que je dois faire un SUM mais comment écrire ce code je ne sais pas! j'espère que vous pouvez m'aider!
    Merci d'avance!

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    Désolé j'ai fais une erreur!

    en réalité je dois filtrer une autre table qui est 'table timesheet'; elle a comme champs : TS_ID, WBE_ID, INVOCEITEM_ID, TS_DATE, TS_QTY et PERSON_ID.

    je dois calculer le nombre de jours travaillés entre deux dates par un travailleur X.

    je sais que je dois faire un SUM mais comment écrire ce code je ne sais pas! j'espère que vous pouvez m'aider!
    Merci d'avance!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SGBD] requête sql en php pour mysql
    Par Thierry8 dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/09/2005, 22h31
  2. [SGBD] Probleme Avec Php et Mysql
    Par junior258 dans le forum Installation
    Réponses: 2
    Dernier message: 20/09/2005, 10h39
  3. Serv apach 2, php 5, mysql 4
    Par Bouki dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 24/06/2005, 15h32
  4. Travailler avec PHP / Apache / MySQL
    Par R3iTt0R dans le forum Linux
    Réponses: 22
    Dernier message: 24/06/2004, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo