Les Allergies
Alimentaires
Posez votre question Signaler

[PHP/MYSQL]recupération de données... [Résolu]

zeal21 27Messages postés 9 février 2005Date d'inscription - Dernière réponse le 22 mars 2010 à 00:34
bonjour,
je fais un site en php/mysql
j'ai créé un formulaire où j'ai une liste déroulante comportant mes utilisateurs et une zone texte correspondant au service auquel appartient c utilisateurs.
lorsque je choisis un utilisateur, THÉORIQUEMENT ,le nom du service s'affiche automatiquement.
cependant, c'est l'ID de l'utilisateur qui s'affiche.
je sais qu'il faut que je fasse une requête pour récupérer cette valeur mais je ne sais pas où le mettre.

ICI
function set_service() { 
 document.formulaire.nomserv.value=document.formulaire.iduser.value;
  } 


ou dans la value de ma zone texte?
Lire la suite 

[PHP/MYSQL]recupération de données »

40 réponses
Réponse
+1
moins plus
Bonsoir,

Alors il faut recharger la page dans ce cas là (selon l'évènement que tu veux en Javascript)...

Si ton Formulaire a pour methode "post", tu poses une condition en php
if (isset($_POST['iduser']))
{
             Récupération du service dans la base de données...
}

Ca te permet de dire à la page => si j'ai reçu telle valeur via la methode post (en l'occurence, ta valeur iduser depuis ton formulaire) alors je vais récupérer des trucs dans la base de données, sinon j'affiche le formulaire comme d'habitude...

A la fin de la récupération, il faut encore recharger la page et envoyer la valeur de ton service vers ton formulaire.
Pour ça tu peux utiliser
document.location.replace("http://ta_page_actuelle?service=machin")


Puis dans le formulaire (sans oublier de poser une condition en début de page avec isset comme au dessus, pour savoir si le nom du service est là, sinon afficher le formulaire comme d'habitude):
<input type="text" name="service" value="$_GET['service']" 
(à retranscrire en php => echapper les guillemets etc...)

Voilà :-)
zeal21kilian - 17 févr. 2005 à 10:17
ok
mais j'ai essayé des trucs mais ca marche pas...
voila:

j'ai créer une fonction search_service(recherche du service)
cependant je ne sais pas si elle est juste...je vous la donne et vous pourrez me dire si el vous paraît juste ou fausse...


function search_service($iduser){
  
    $msg_erreur = "Impossible d'afficher le nom du service!";
  
    if (isset($_POST['iduser'])){
    
      if ($_POST['iduser'] == $iduser){
      
        $nomserv = $db->query_Read_Database("SELECT ID_DEST, LIB_DEST FROM destinataires d, users u WHERE u.ID_DEST=s.ID_DEST AND ID_USER='$iduser'");
      
      } //fin SI n°2
    }//fin SI n°1
    return $msg_erreur;
  }//fin fonction



ensuite ce que j'ai fait est faux ou je l'emploi mal.
j'appelle ma fonction lorsque je change une donnée dans ma liste déroulante donc avec un "onchange".
mais j'ai une erreur

Citation :
<select name="iduser" onchange="
Fatal error: Call to undefined function: search_service() in e:\www\fr\Informatique\auth_user.php on line 56


donc je pense c'est parce que le php ne peut pas être interprété c'est ca?

mais pour la méthode que je fait, le mieux serait que je mette cette fonction dans une page a part?ou pas?
kilian- 17 févr. 2005 à 22:10
Pour le coup tu gardes quand même mon usine à gaz? :-)

A toi de voir entre les différentes solutions....

En tout cas si tu gardes la mienne, et si tu gardes ta fonction:
_ Est ce que tu l'utilises bien après soumission du formulaire et rechargement de la page?

Si c'est bien le cas:
function search_service($iduser)


Tu entre quoi comme paramètre quand tu l'utilises?
Tu écris search_service($_POST['iduser'])?
En ce cas pourquoi le recomparer par la suite à $_POST['iduser']?
if (isset($_POST['iduser'])) 

Si tu as entré $_POST['iduser'] comme paramètre de ta fonction ça ne sert plus à rien de vérifier si elle existe, l'erreur se sera déclarée avant ....
if ($_POST['iduser'] == $iduser)

Je ne pense pas que $_POST['iduser'] sera déclarée comme variable globale dans ta fonction mais c'est à vérifier... Si le tableau $_POST peut être utilisé comme variable locale dans une fonction alors elle sera locale (c'est à dire une variable utilisée uniquement dans ta fonction qui n'aura rien à voir avec le vrai $_POST)
$nomserv = $db->query_Read_Database("SELECT ID_DEST, LIB_DEST FROM destinataires d, users u WHERE u.ID_DEST=s.ID_DEST AND ID_USER='$iduser'");


Pour tester ta requête, rien ne vaut un echo avec le contenu de ta requête (en tant que simple chaine) que tu peux ensuite tester dans ta base plus directement ...
Si j'ai bien compris, $db est l'instanciation d'une classe déclarée avant ta fonction? Alors idem, $db est sûrement considéré comme une variable locale et non comme le véritable objet utilisé dans ton programme principal...

} //fin SI n°2
    }//fin SI n°1
    return $msg_erreur;
  }//fin fonction

D'après ce que je lis ta fonction retournera toujours "Impossible d'afficher le nom du service!" :-)
 Call to undefined function: search_service()

Visiblement tu utilises ta fonction sans l'avoir préalablement déclarée. Dans ton code tu dois sûrement te retrouver avec
"search_service($truc)" qui se situe avant "function search_service($iduser)"
kiliankilian - 17 févr. 2005 à 22:31
Je verrais plus un truc du genre:
if (isset ($_POST['iduser']))
{
            $iduser=$_POST['iduser'];
            requête :-)
             Traitement des données etc...

}


Que tu peux bien evidemment retranscrire en fonction si tu veux...
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour

entre vos deux proposition pour son emplacement, les deux sont identiques, car la donction utilisé sert a définir l'id alors la definir par fonction ou dirrectement cela reviens au même mais il est evident que ce soit l'ID de vos utilisateur qui s'affiche car si je lis votre code je vois ceci :
document.formulaire.nomserv.value=document.formulaire.iduser.value;

d'apres une certaine logique il est evident que la valeur de iduser soit l'id de l'utilisateur. Si iduseur necorrespond pas à l'id alors je ne comprend pas votre script, il me faudrait voir ce fragment html qui affiche la liste et la zone de texte pour vous répondre.

Bonne continuation pour votre site.

Cordialement : Maxime
zeal21 - 11 févr. 2005 à 08:55
oué d'accord
je m'explique mieux:
ma liste déroulante est créer a partir de mon iduser pour récupérer le nom et le prénom de l'utilisateur.
mais je suis obligé de passer par cet iduser pour récupérer le service: dans ma table USERS j'ai une clé étrangère ID_DEST qui renvoie a la table de mes services.
j'ai essayé des requêtes SQl, d'autres moyens je ne sais plus trop lesquels et cela ne fonctionnait pas...
donc j'aimerais avoir l'explication ou un morceau de code si quelqu'un l'a fait pour récupérer une valeur à partir d'un ID mais dans mon cas (liste déroulante et affichage automatique)

Vous voyez ce que je vopudrais?

merci en tout cas de votre...

a bientot
zeal21 - 11 févr. 2005 à 08:58
LOL
je viens d'aller sur ton profil et je vois que tu es de dijon!!
ben moi je suis de beaune!lol
tu es dans quel lycée?
++
M0rpheus- 11 févr. 2005 à 17:29
Bonjour
Effectivement, expliqué de la sorte, je ne saurais vous aider, désolé de n'avoir pas compris dés la premiere fosi ce ue vous vouliez dire.

Pour ce qui est du lycée je me trouve a Eiffel a Dijon sinon j'habite a 80Km de Dijon

Encore dsl de ne savoir vous répondre
Ajouter un commentaire
Réponse
+0
moins plus
Yop !

Ce que tu veux faire c'est une usine à gaz ! :)
Il va falloir que ton script php te génere un tableau javascript du style :

service[id_utilisateur]=nom_du_service

Solution valide si 1 utilisateur = 1 service. Et uniquement si le but est de faire de l'affichage... C'est pas une solution très propre si tu dois reposter ton formulaire...

et que tu fasse une fonction javascript capable de récupérer ça...
(c'est en fait pas très compliqué, mais je te dirais pas comment on fait vu que je suis une quiche question js, et donc je fuis ce langage comme la peste)

Y'a deux défauts majeurs...
1) question confidentialité c'est très très (vraiment très très !) limite...
2) c'est acceptable si tu as une quinzaine d'utilisateurs, ça l'est beaucoup moins si tu en as 350...
zeal21- 17 févr. 2005 à 10:55
ok
en fait voila c'est pas vraiment une session que je veux faire

je fait un intranet et je modifie des pages pour le service informatique
les utilisateur déclarent par l'intranet leur incident
donc je voudrais une sorte d'authentification mais sans mot de passe l'utilisateur choisit son nom dans une liste déroulante et son service s'affiche dans une zone de texte en dessous de cette liste.
cela me servira plus tard pour que dès qu'il déclare leur incident ils envoient un mail avec service nom....etc

le JS je connait très peu et j'ai plutôt 100 voire200 utilisateurs mais tous n'ont pas d'incidents!!
Puis chaque service comporte plusieurs utilisateurs!
puis j'ai déjà présenté le projet au responsable info et ca ne lui a pas posé de problèmes (comparé a moi.... :( ) donc cette solution lui ocnvient!!


voila pour les explications...

++
fro - 17 févr. 2005 à 11:21
Heu... juste un truc...

Meme si tous les utilisateurs n'ont pas d'incident, ils doivent tous être dans la liste, en cas de besoin, n'est ce pas ?

Du coup à chaque fois, l'utilisateur devra retourner chercher son nom dans une liste déroulante comptant 200 personnes ?

J'ai mal pour eux ! :)
zeal21zeal21 - 17 févr. 2005 à 11:42
en fait nan

si l'utilisateur ne se trouve pas dans la liste il peut s'enregistrer
ok si tout le monde a des problèmes ca va etre lourd a chercher leur nom mais bon
pi tout le monde n'a pas de problèmes en info et ils ont le téléphone aussi!!

après ils font ce qu'ils veulent soit ils utilisent ma solution ou pas je m'en fout tant que j'ai un projet de stage!! :D

voila
Ajouter un commentaire
Réponse
+0
moins plus
bonjour,

ce site est pour une entreprise où je suis en stage
cxe matin la responsable info a vu le travail que j'ai fait, je lui expliqué pour certains problèmes.

et pour ce formulaire, pour cet affichage automatique elle m'a conseillé de mettre une liste déroulante qui était mieux, c'était + homogène par rapport au reste du site....

donc j'abandonne cette solution

En tout cas MERCI BEAUCOUPde votre aide et de votre générosité, de perdre du temps pour un newbie ;-) c'est vachement sympa ;-)

a bientôt...
Ajouter un commentaire
Réponse
+0
moins plus
Bonne chance :-)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je suis entrain de créer un formulaire "liste déroulante pour des produits lié avec mysql.

Je souhiate faire parraitre sur la meme page le prix et la réference du produit sélectioné :

<?php
//on se connecte à la base de donnée
$SQL = mysql_connect('localhost','root','') or die ("erreur de connexion");print ("Connexion réussie.");

//on selectionne votre base
mysql_select_db('lcompresseurs',$SQL) or die ("erreur de connexion base");

$result=mysql_query("SELECT Ref,Compresseur,Prix,Design FROM dixair");
mysql_close();
?>

<p>Veuillez choisir votre compresseur :</p>

<SELECT NAME="compresseur">
<?
while($val=mysql_fetch_array($result))
{
echo "<OPTION VALUE='".$val["Compresseur"]."'>".$val["Compresseur"]."</option>";
}
?>
</SELECT>
<input type="submit" value="Vérifier le prix" />

Jusque la tout fonctionne ma liste est reprise de mysql mais je n'arrive pas a affiché un résultat quand la personne choisi le produit.

Pouvez vous m'aider ?????

Merci
coniglio - 3 nov. 2006 à 21:22
avoir plus info
Ajouter un commentaire
Réponse
+0
moins plus
script php gestion de panier SVP
Ajouter un commentaire
Réponse
+0
moins plus
salut tous le monde
je veux m'identifier ,et quand j entre mon login et mon mot de passe me repond avec une erreur c'est qu'ils sont faux ,alors qu 'ils sont enregistrées dans une table sur ma base de données mysql,c quoi le probléme
c urgent
mon script est en PHP
et je travail avec easyphp
Ajouter un commentaire
Réponse
+0
moins plus
Et moi qui pensais que c'était un problème de récupération de données... Tant pis.
Ajouter un commentaire
Réponse
+0
moins plus
Salut
je fait un site il y a une identification la page marche losrque qu'on rentre l'identifient et le code mais ensuite j'ai un formulaire et je voudrai que dans une liste déroulente on mette que les élément appartent a la personne qui c'est identifier
voila et merci de me repondre ou de me dire si c possible ou nn lol
Ajouter un commentaire
Réponse
+0
moins plus
vous devez les mettre dans un java script
Ajouter un commentaire
Réponse
-1
moins plus
Ben si tu veux des infos pour bien récupérer des données, dans le même registre que le reportage Tom’s Guide relaté dans CommentCaMarche sur un labo en Hollande (http://www.adnpc.net/news/voir.php?id=4997), il y a deux articles intéressants sur les dessous d'une salle blanche en récup de données, mais cette fois c'est bien chez nous que ça se passe, en France (à ma connaissance la seule salle blanche sur Paris). Il y a le reportage vidéo en streaming de 01net sur le processus complet de récupération des fichiers d'un disque dur en panne récupération de données en salle blanche et par le magazine l'Ordinateur Individuel du mois dernier, le reportage de 4 pages En images (PDF) sur les dessous d'un labo de récup avec certaines photos vraiment étonnantes : récupération de données

A+
Ajouter un commentaire
Ce document intitulé « [PHP/MYSQL]recupération de données... » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?