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 :

Récupérer les résultats d'une requête dans des variables


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Récupérer les résultats d'une requête dans des variables
    Bonjour,
    je suis entrain de concevoir un script php faisant des requête sur une base oracle.
    Mon problème :
    J'ai une requête sql qui me rapporte plusieurs résultats ...
    J'aimerai que chaque résultats soit affecté à une variable que je pourrai utiliser dans une autre requête

    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $nrows = OCIFetchStatement($stmt3,$results);
    for ( $i = 0; $i < $nrows; $i++ ){
    reset($results);
    print "<TR>\n";
    while ( $column = each($results) ) {
             $varnordv = $column['value'];
     
    print "<TD>$varnordv[$i]</TD>\n";
    ça m'affiche bien mes trois résultats.
    Ce que je souhaite obtenir c'est que par exemple

    $varnordv0= le premier résutat de ma requête
    $varnordv1= le second résultat de ma requête...
    etc ....
    afin de pouvoir réutiliser $varnordv0, $varnordv1,$varnordvx dans d'autres requêtes

    J'avais fais ça auparavant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while (OCIFetch($stmt3)) ;{
    	$varnordv1=OCIResult($stmt3, "NORDV");
    }
    Mais cela n'est valable que lorsque j'ai un seul résultat en retour de ma requête

    Merci à ceux qui auront des réponses.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    On ne fait pas de variables numérotées. Les tableaux sont fait pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ( $column = each($results) ) {
             $varnordv[] = $column['value'];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    un exemple à me donner ?, car les tableaux je ne les connais que pour afficher des résultats.
    Merci de ton aide

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'ailleurs je viens de lire la doc de OCIFetchStatement, cette fonction obsolète renvoit déjà un tableau de valeurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $rows = oci_fetch_all($stmt3,$results);
    $varnordv = $rows['value'];
    // $varnordv contient toutes les valeurs de la colonne value
    Tu devrais te former sur les tableaux PHP c'est un élément basique et essentiel.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse...
    Je vais reprendre tout à zéro concernant les tableau il y a trop longtemps que je ne suis plus dedans ... lool

    concernant ta correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $rows = oci_fetch_all($stmt3,$results);
    $varnordv = $rows['value'];
    // $varnordv contient toutes les valeurs de la colonne value
    si mon $varnordv renvoi plusieurs valeur, comment puis-je les distinguer et donc les sélectionner par requête ?

    Car en fonction du résultat de ma requête je peux avoir n résultats

    j'ai fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $rows = oci_fetch_all($stmt3,$res);
    //echo "$nrows rows fetched<br>\n";
    var_dump($res);
    // Affichage des résultats
    echo "<table border='1'>\n";
    foreach ($res as $col) {
        echo "<tr>\n";
        foreach ($col as $item) {
            echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
        }
        echo "</tr>\n";
    }
    echo "</table>\n";

    et à l'affichage j'ai bien ceci

    array(1) { ["NORDV"]=> array(3) { [0]=> string(7) "1102295" [1]=> string(7) "1088434" [2]=> string(7) "1904580" } } 1102295 1088434 1904580
    ce qui intéresserai c'est de pouvoir reprendre le [0], [1], [2] [n] et de pouvoir les assigner à une variable ... je ne sais pas si je me fais bien comprendre

    merci pour tes compétences.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a aucune raison de réassigner ces valeurs, elles sont déjà bien au chaud dans une variable.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    je suis peut être un petit peu lourd mais si ces valeurs sont bien au chaud comme tu dis qu'elle est la syntaxe afin que je puisse m'en servir dans une nouvelle requête ?

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $res['NORDV'][0], $res['NORDV'][1], $res['NORDV'][2] etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci à toi sabotage j'avais trouvé la solution ce matin ... comme quoi la nuit porte conseils ...
    je mets à résolu.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/01/2008, 08h36
  2. [MySQL] récupérer le résultat d'une requête dans un tableau
    Par faty2 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/05/2007, 16h22
  3. Réponses: 2
    Dernier message: 15/09/2006, 12h18
  4. Transformer les résultats d'une requête dans un autre ordre
    Par keikun dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 12/04/2006, 16h29
  5. Réponses: 7
    Dernier message: 30/06/2005, 10h06

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