Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/09/2007, 12h02   #1
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Par défaut [SQL] demande AIDE pour conception en SQL

Bonjour, je voudrais savoir comment faire pour Imaginons que nous sommes une société avec chaques jour de la semaine les arrivées de employés
Donc
Lundi - Dupont - 8h54
Mardi - Dupont - 9h02
Mercredi - Dupont - 8h58
Jeudi - Charly - 9h01

Voila je voudrais
Rechercher dans la table par exemple les heures d'arrivées de Dupont lundi par exemple comment faire en Sql? merci
copart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 12h59   #2
Membre confirmé
 
Avatar de SoBaKa
 
Homme Grégory Houdremont
Développeur .NET
Inscription : juillet 2006
Messages : 213
Détails du profil
Informations personnelles :
Nom : Homme Grégory Houdremont
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2006
Messages : 213
Points : 274
Points : 274
Envoyer un message via MSN à SoBaKa
Salut,

apparemment tu n'as jamais touché à une base de données donc je te conseillerais d'aller voir les cours sql

Sinon c'est une bête requête sql vu ton exemple, imaginons que tes 3 colonnes se nomment "Jour", "Nom", "HeureArrivée" et que ta table se nomme "Présences" :

Code :
SELECT Nom, HeureArrivée FROM Présences WHERE Nom = 'Dupont' AND Jour = 'Lundi';
ca te retournera 2 colonnes "Nom" et "HeureArrivée" avec comme contenu "Dupont", " 8h54"

Voila je te conseil plus qu'a lire un peu les cours pour en savoir un peu plus.
SoBaKa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 13h08   #3
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Re Ben il est vrai que mes notions ne sont pas tres aprofondies mais cela ne fonctionnera pas comme je voudrais car Je voudrais L'arrivée le lundi pour Dupont et qu'on retourne l'heure d'arrivée

merci de ton aide
copart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 14h18   #4
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
$jour = "1";
$log = "Dupont";

$requetelast1 = "SELECT jour, log, heureA FROM Heures".
" WHERE jour='$jour' AND log='$log'";

$result=mysql_query($requetelast1);
echo $enreg["heureA"];
copart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 08h58   #5
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
J'avoue ne pas saisir ou est le probleme
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 10h34   #6
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Ben la requête reste muette rien ne s'affiche, meme pas d'erreur rien :-(

Merci
copart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h27   #7
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Quelle erreur vous renvoie le resultat dans le code PHP ?

avez vous essayé d'executer la requête dans un client BDD ? sans le code PHP ?

Si oui, quelle est l'erreur retournée ?
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h47   #8
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Rien du tout la page est vierge, merci
"SELECT * FROM HorairesArrivee".
"WHERE jour='$jour' AND log='$log'";



#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 'WHERE jour = "1" AND log = "dupont"
LIMIT 0, 30' at line 1
copart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 15h14   #9
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
La requete que vous donnez en exemple n'est donc pas complete (il manque le Limit). La simple Quote trainant à coté du 30 va certainement vous poser problème
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 15h31   #10
Membre confirmé
 
Avatar de SoBaKa
 
Homme Grégory Houdremont
Développeur .NET
Inscription : juillet 2006
Messages : 213
Détails du profil
Informations personnelles :
Nom : Homme Grégory Houdremont
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2006
Messages : 213
Points : 274
Points : 274
Envoyer un message via MSN à SoBaKa
la simple quote après le 30 a été ajoutée par l'erreur je pense (vu qu'il y en a un avant le where )

Ca fait longtemps que j'ai pas touché a MySQL mais il me semble voir 2 petites erreurs...

Les nombres ne doivent pas être mis entre quote et les chaines de caractères doivent être entre simple quote.

Ce qui donne avec ta requete quelque chose comme ceci :

Code :
SELECT * FROM HorairesArrivee WHERE jour=1 AND log='Dupont';
Petit conseil avant de se mettre dans le code php, toujours testé les requetes sql séparémment surtout quand on est pas sur de la requete ^^
SoBaKa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 10h54   #11
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
en sql sur phpmyadmin la requête sélectionne bien la ligne, mais sur php via le web rien ne s'affiche

Code :
1
2
3
4
5
6
7
8
$jour = 1;
$log = 'Dupont';
 
$requetelast1 = "SELECT *  FROM Heures".
"WHERE jour= $jour AND log=$log";
 
$result=mysql_query($requetelast1);
echo $enreg["heureA"];
copart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 11h02   #12
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 102
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 102
Points : 31
Points : 31
Il te manquerait pas une ligne genre :

Code :
1
2
3
4
5
6
7
8
9
$jour = 1;
$log = 'Dupont';

$requetelast1 = "SELECT * FROM Heures".
"WHERE jour= $jour AND log=$log";

$result=mysql_query($requetelast1);
$enreg = mysql_fetch_array($result);
echo $enreg["heureA"];
SkyBack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 11h02   #13
Membre confirmé
 
Avatar de SoBaKa
 
Homme Grégory Houdremont
Développeur .NET
Inscription : juillet 2006
Messages : 213
Détails du profil
Informations personnelles :
Nom : Homme Grégory Houdremont
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juillet 2006
Messages : 213
Points : 274
Points : 274
Envoyer un message via MSN à SoBaKa
Citation:
Envoyé par copart Voir le message
en sql sur phpmyadmin la requête sélectionne bien la ligne, mais sur php via le web rien ne s'affiche


$jour = 1;
$log = 'Dupont';

$requetelast1 = "SELECT * FROM Heures".
"WHERE jour= $jour AND log=$log";

$result=mysql_query($requetelast1);
echo $enreg["heureA"];
essaie ceci :

Code :
1
2
3
4
$log = "Dupont";
 
$requetelast1 = "SELECT *  FROM Heures".
"WHERE jour= $jour AND log='$log';";
Quand on déclare une variable de type chaine de caractère c'est toujours avec des double quotes et les simples quotes doivent être dans ta requete, donc entre $log.

par précaution je rajouterais aussi un ; après '$log' car je sais plus si il est obligatoire ou pas en MySQL.

voila...
SoBaKa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 12h40   #14
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Une autre version :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
  $jour = 1;
  $log = 'Dupont';
 
  $requetelast1 = 'SELECT jour, log, heureA FROM Heures
                   WHERE jour = ' . $jour . ' 
                   AND log = \'' . $log . '\'';
 
  $result = mysql_query($requetelast1);
  $enreg = mysql_fetch_array($result, MYSQL_ASSOC);
  echo $enreg['heureA'];
?>
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 14h04   #15
Invité de passage
 
Inscription : septembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 10
Points : 1
Points : 1
Merci a tous pour cet aide
copart est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h57.


 
 
 
 
Partenaires

Hébergement Web