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 :

Traitement de données d'un formulaire [Oracle]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Par défaut Traitement de données d'un formulaire
    Bonsoir tous le monde

    alors voilà j'ai bien avancé dans mon formulaire tout marche impec

    voici le code mais maintenant je veux traiter les données:
    Code html : 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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Demande d'intervention</title>
     
    </head>
    <body>
    <form action="traitement.php" method="post">
    <strong>
    <th>Formulaire de demande d'intervention</th>
     
    <table>
     
    <?php 
    $db_conn = ocilogon( "pti", "rugbys" ,"//127.0.0.1/XE");
    $cmdstr = "select NOM from employes order by NOM";
    $parsed = ociparse($db_conn, $cmdstr);
    ociexecute($parsed);
    $nrows = ocifetchstatement($parsed, $results);
    echo "<td><b>Votre Nom</b></td>\n";
    echo "<table border=0 cellspacing='0' width='0%'>";
    echo "<select name=nom>";
    for ($i = 0; $i < $nrows; $i++ ) 
     { 
     echo "<option value=\"".$results['NOM'][$i]."\">".$results['NOM'][$i] ."</option>"; 
     }
     
    $cmdstr = "select libellemat from materiel order by libellemat";
    $parsed = ociparse($db_conn, $cmdstr);
    ociexecute($parsed);
    $nrows = ocifetchstatement($parsed, $results);
    echo "<td><b>Le materiel concerne</b></td>\n";
    echo "<table border=0 cellspacing='0' width='0%'>";
    echo "<select name=libellemat>\n";
    for ($i = 0; $i < $nrows; $i++ ) 
     { 
     echo "<option value=\"".$results['LIBELLEMAT'][$i]."\">".$results['LIBELLEMAT'][$i] ."</option>"; 
     }
      
    $cmdstr = "select libelleinter from typeinter order by libelleinter";
    $parsed = ociparse($db_conn, $cmdstr);
    ociexecute($parsed);
    $nrows = ocifetchstatement($parsed, $results);
    echo "<td><b>Choisissez le type d'intervention a effectuer</b></td>\n";
    echo "<table border=1 cellspacing='0' width=''>";
    echo "<select name=libelleinter>\n";
    for ($i = 0; $i < $nrows; $i++ ) 
     { 
     echo "<option value=\"".$results['LIBELLEINTER'][$i]."\">".$results['LIBELLEINTER'][$i] ."</option>"; 
     }
     ?>
    <br><td>Commentaire</td><td><textarea name='commentaire' cols='30' rows='5'></textarea></td></br>
    <tr><td>Date de la demande (JJ/MM/YYYY)</td><td><input name='datedemande' type='date' size='10'></td></tr>
     
     
    </strong>
    </table>
    <input name='annuler' type='reset' value='Annuler'>
    <input class="h" type="submit" name="ok" value="Envoyer"/><br /> 
    </form>
    </body>
    </html>

    Pour l'instant je veux simplement afficher les données sélectionnées via les listes déroulantes

    donc j'essaye ca dans le fichier traitement.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Demande d'intervention</title>
     
    </head>
    <body>
    <?php
    echo $nom;
    ?>
    </body>
    </html>
    Ca ne m'affiche rien ca me met ca:
    Notice: Undefined variable: nom in c:\program files\easyphp1-8\www\test1\traitement.php on line 9

    Si je comprends bien la variable "nom" n'est pas définie dans le formulaire!

    Quelle est la syntaxe à avoir pour déclarer cette valeur correctement car à priori je me suis planté

    merci

  2. #2
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut e
    En PHP, ce sont des variables locales qui sont utilisées dans chaque script !
    Si vous définissez $blabla dans le script A, lorsque vous executerez le script B, $blabla vaut : FALSE car elle est indéfinie. PHP est un language de haut niveau système, mais d'une complexité ridicule.

    Un excellent moyen de passer une variable de script en script est l'usage des sessions.
    php.net/sessions

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Par défaut
    ok bon je vais me renseigner sur les sessions.
    Mais est ce la meme chose pour l'insertion de données via le formulaire?

    Merci à vous

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Par défaut
    Bon je viens d'essayer ce code et à priori il me renvoit bien les données du formulaire

    Code php : 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
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Demande d'intervention</title>
     
    </head>
    <body>
    <?php
     
    echo  $_POST['nom'];
    echo  $_POST['libellemat'];
    echo  $_POST['libelleinter'];
    echo  $_POST['commentaire'];
    echo  $_POST['datedemande'];
     
    ?>
    </body>
    </html>

    Donc maintenant il faut que j'insère ces données dans ma table et c'est du tout bon

  5. #5
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    Bravo ! Vous avez bien compris !
    php.net/oracle vous sera utile si vous connaissez le langage de requête d'Oracle.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Par défaut
    bon je viens de me rendre compte d'une chose assez complexe:

    l'utilisateur va choisir son nom (même si je devrai essayer de récupérer son nom lors de son login enfin bref on verra plus tard)

    donc la valeur du champs $nom est "toto" par exemple
    Mais le problème c'est que je me sers de ce formulaire pour inserer les données dans une table qui contient les id_nom

    Je dois donc passer par une sorte de conversion!

    en gros un select idsalarie from salarie where nom="toto";
    comme ça le formulaire va m'insérer non pas le nom mais l'id du nom

    enfin peut etre que je vais revoir mon MCD car là ca ne sera pas à grand chose

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Par défaut
    en fait je voulais savoir si on peut affecter à une variable le résultat d'une requete sql?

    si je fais un: select idsalarie from employes where nom='toto' en sql ça me remonte un id de 2 par exemple que je voudrais affecter à la variable $idsalarie


  8. #8
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    C'est écrit dans la documentation suivante : php.net/oracle

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Par défaut
    Bon alors je suis passé par ce code et ca remonte bien les bonnes valeurs cette fois ci mais l'insertion ne se passe pas très bien
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Demande d'intervention</title>
     
    </head>
    <body>
     
     
     
    <?php
     
    $db_conn = ocilogon( "pti", "rugbys" ,"//127.0.0.1/XE");
    echo  $_POST['nom'];
    echo  $_POST['libellemat'];
    echo  $_POST['libelleinter'];
    echo  $_POST['commentaire'];
    //echo  $_POST['datedemande'];
     
    $nom=$_POST['nom'];
    $libellemat=$_POST['libellemat'];
    $libelleinter=$_POST['libelleinter'];
    $commentaire=$_POST['commentaire'];
    //$datedemande=$_POST['datedemande']; 
     
    // $request="insert into planning (idintervention,nom,materiel,typeintervention,commentaire,datedemande,datefin)values (102,'$nom','$libellemat','$libelleinter','$commentaire',sysdate,'')";
    // $insert=ociparse($db_conn,$request);
    // ociexecute($insert);
     
    $idsalarie=ociparse($db_conn,"select idsalarie from employes where nom='$nom'");
    ociexecute($idsalarie);
    $compteur = 0;
    while (OCIFetch($idsalarie)) {
    	$compteur++;
    	echo OCIResult($idsalarie, "IDSALARIE");
     
    }
    OCIFreeStatement($idsalarie);
     
     
    $idmateriel=ociparse($db_conn,"select idmateriel from materiel where libellemat='$libellemat'");
    ociexecute($idmateriel);
    $compteur = 0;
    while (OCIFetch($idmateriel)) {
    	$compteur++;
    	echo OCIResult($idmateriel, "IDMATERIEL");
     
    }
    OCIFreeStatement($idmateriel);
     
     
    $idtypeintervention=ociparse($db_conn,"select idtypeintervention from typeinter where libelleinter='$libelleinter'");
    ociexecute($idtypeintervention);
     
    $compteur = 0;
    while (OCIFetch($idtypeintervention)) {
    	$compteur++;
    	echo OCIResult($idtypeintervention, "IDTYPEINTERVENTION");
     
    }
    OCIFreeStatement($idtypeintervention);
     
     
    echo "$idsalarie";
    echo "$idmateriel";
    echo "$idtypeintervention";
     
    $request="insert into intervention (idintervention,idsalarie,idmateriel,idtypeintervention,commentaire,datedemande,datefin)values ('','$idsalarie','$idmateriel','$idtypeintervention','$commentaire',sysdate,'')";
    $insert=ociparse($db_conn,$request);
    ociexecute($insert);
     
    ?>
    </body>
    </html>
    voici l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AndreaniAMPLIERAssistancerrrrrrrrrr15113Resource id #5Resource id #6Resource id #7
    Warning: ociexecute(): OCIStmtExecute: ORA-01722: Nombre non valide in c:\program files\easyphp1-8\www\test1\traitement.php on line 70
    Donc je veux insérer 15, 1, 13, rrrrrrrrrrrrrrr,
    Par contre Resource id #5,6,7 c'est lui qui me rajoute ça....
    J'espère qu'il n'essaye pas de me les insérer

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Par défaut
    Bon ca y est j'ai trouvé mon erreur Il fallait integrer le resultat du ociresult dans une variable. Donc je viens de tester et ca marche

    Merci beaucoup pour votre aide.

    Ci joint le code si ça peut interesser quelqu'un
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Demande d'intervention</title>
     
    </head>
    <body>
     
    <?php
     
    $db_conn = ocilogon( "pti", "rugbys" ,"//127.0.0.1/XE");
     
    $nom=$_POST['nom'];
    $libellemat=$_POST['libellemat'];
    $libelleinter=$_POST['libelleinter'];
    $commentaire=$_POST['commentaire'];
     
    $idsalarie=ociparse($db_conn,"select idsalarie from employes where nom='$nom'");
    ociexecute($idsalarie);
    $compteur1 = 0;
    while (OCIFetch($idsalarie)) {
    	$compteur1++;
    	$id1=OCIResult($idsalarie, "IDSALARIE");
     
    }
    OCIFreeStatement($idsalarie);
     
     
    $idmateriel=ociparse($db_conn,"select idmateriel from materiel where libellemat='$libellemat'");
    ociexecute($idmateriel);
    $compteur2 = 0;
    while (OCIFetch($idmateriel)) {
    	$compteur2++;
    	$id2=OCIResult($idmateriel, "IDMATERIEL");
     
    }
    OCIFreeStatement($idmateriel);
     
     
    $idtypeintervention=ociparse($db_conn,"select idtypeintervention from typeinter where libelleinter='$libelleinter'");
    ociexecute($idtypeintervention);
     
    $compteur3 = 0;
    while (OCIFetch($idtypeintervention)) {
    	$compteur3++;
    	$id3=OCIResult($idtypeintervention, "IDTYPEINTERVENTION");
     
    }
    OCIFreeStatement($idtypeintervention);
     
    $request="insert into intervention (idintervention,idsalarie,idmateriel,idtypeintervention,commentaire,datedemande,datefin)values ('','$id1','$id2','$id3','$commentaire',sysdate,'')";
    $insert=ociparse($db_conn,$request);
    ociexecute($insert);
     
    echo "Votre demande est prise en compte et sera traitee dans les meilleurs delais";
    ?>
     
    </body>
    </html>

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

Discussions similaires

  1. [AC-2007] Traitement de Données dans un formulaire
    Par mamaru dans le forum IHM
    Réponses: 1
    Dernier message: 12/03/2013, 20h59
  2. Réponses: 11
    Dernier message: 16/02/2008, 03h00
  3. Traitement des données provenant d'un formulaire
    Par captainflex dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 03/05/2007, 15h21
  4. Problème: formulaire et traitement des données
    Par Pahcixam dans le forum Langage
    Réponses: 3
    Dernier message: 29/10/2006, 04h37
  5. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 09h08

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