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ération d'une variable time


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut Récupération d'une variable time
    Bonjour,

    Je cherche à récupérer, via du code php, une variable "time" à partir d'une variables "datetime" dans une base oracle...
    Je m'explique, j'ai des variables du type "01/01/1900 hh:mm:ss" dans une base oracle et je veux juste récupérer le temps (hh:mm:ss).

    Le seul résultat que j'arrive à avoir c'est 01/01/1900 (meme en faisant juste un echo "$date").
    Vu que la date est 1900, je peux pas via le timestamp( malins les DBA...), j'ai aussi essayé avec strlen, explode etc... mais comme de toute facon à aucun moment j'ai réussi à afficher le temps, je ne sais pas comment faire.

    Si vous voulez du code, je vous mets juste la requete qui va fouiller dans ma base. Je ne sias pas si ca sera utile mais c'est tout ce que j'ai.

    MErci d'avance.

    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
    if($ses_ot!='vide'){
    	$sql=new oracle();
    	if($sql->connect()=='ok'){
    		$req="SELECT requestdate,requesttime FROM wo WHERE wonum='$ses_ot'";
    		$sql->execute($req);
    		$r=$sql->nbresults();
    		echo"$r";
     
    		if($r!=0){
    		echo"dans le if";
    			for($j=0;$j<$sql->nbresults();$j++){
    				$datedemande=$sql->recup($j,"REQUESTDATE");
    				$heuredemande=$sql->recup($j,"REQUESTTIME");				
    			}
    		}
    		else {
    		echo"dans le else";
    			$datedemande='';
    			$heuredemande='';
    		}

    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
    function execute($query)
        {
            // Il suffit de mettre en commentaire error_reporting pour faire du
            // débogage - voir quand il n'y a aucun résultat "NO DATA FOUND" par exemple.
            error_reporting(0);
     
            if (($this->verif != "nok") && ($this->verif != "ok"))
            {
                $this->verif = "nok";
            }
            else
            {
                if ($this->cursor = ora_do($this->connection, $query))
                {
                    $this->numCols = ora_numcols($this->cursor);
     
                    // On met la première ligne dans un tableau
                    $row = array();
     
                    for ($i=0; $i<$this->numCols; $i++)
                    {
                        // On parcours toutes les colonnes
                        $row[ora_columnname($this->cursor, $i)] = ora_getcolumn($this->cursor, $i);
                    }
     
                    $this->nbresults++;
     
                    // On ajoute la ligne $row au tableau results
                    array_push($this->results, $row);
     
                    // Avec le fetch, on met une à une, les lignes résultantes de la requete
                    //dans le tableau $row qui sera ensuite mis dans le tableau $results.
                    while(ora_fetch($this->cursor))
                    {
                        // On parcours toutes les lignes
                        $row=array();
     
                        for ($i=0; $i<$this->numCols; $i++)
                        {
                            // Pour chaque colonne de chaque ligne
                            $row[ora_columnname($this->cursor, $i)] = ora_getcolumn($this->cursor, $i);
                        }
                        array_push($this->results, $row);
                        $this->nbresults++;
                    }
                    $this->verif1 = "ok";
                }
                else { $this->verif1 = "nok";   }
            }
            // Le fameux error_reporting. Mettre en commentaire pour voir les NO_DATA_FOUND.
            error_reporting(1);
     
            return $this->verif1;
        }
     
        //RECUPERATION DE LA VALEUR CONTENUE DANS LE CHAMP $champ
        function nbresults()
        {
            return $this->nbresults;
        }
     
        //RECUPERATION DE LA VALEUR CONTENUE DANS LE CHAMP $champ
        function recup($a, $champ)
        {
            return $this->results[$a][$champ];
        }
    Tout ch'ti qui pisse i tient s'biroute din ch'min
    La victoire est conservatrice, la défaite est évolutive

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    Salut,

    je sais pas si ca fonctionne sous oracle mais en tout cas avec postgresql tu peux faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SELECT EXTRACT(DAY FROM Nom_Table.NomChamp) as jour,EXTRACT(YEAR FROM Nom_Table.NomChamp) as annee,EXTRACT(HOUR FROM Nom_Table.NomChamp) as heure...
    ensuite tu concataine tes champs en php.

    Sinon tu récupere l'ensemble de ton datetime dans ta requete et tu effectue un explode dessu en php

  3. #3
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut
    Ca a pas l'air de marcher... ou alors je l'utilise mal.

    Voila ce que j'ai fait:

    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
    if($sql->connect()=='ok'){
    	$req="SELECT EXTRACT(HOUR FROM wo.requesttime) as heure WHERE wonum='$ses_ot'";
    		$sql->execute($req);
    		$r=$sql->nbresults();
    		echo"$r";
     
    		if($r!=0){
    		echo"dans le if";
    			for($j=0;$j<$sql->nbresults();$j++){	$heure=$sql->recup($j,"heure");
    			}
    		}
    		else {
    		echo"dans le else";
    			$datedemande='';
    			$heuredemande='';
    		}
    		echo "heure : $heure";
     
    	}
    mais il rentre meme pas dans le if... donc il trouve rien.

    POur le explode j'ai déjà essayé mais j'ai rien réussi à afficher.

    j'avais fait un truc du genre :

    list($a,$b,$c)=explode(':',$heuredemande);

    Merci de ton aide


    EDIT : Pas d'enregistrement non plus avec
    $req="SELECT EXTRACT(HOUR FROM requesttime) as heure from wo WHERE wonum='$ses_ot'";
    Tout ch'ti qui pisse i tient s'biroute din ch'min
    La victoire est conservatrice, la défaite est évolutive

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    Et si tu execute ta requete directement sous oracle ça te donne quoi?

  5. #5
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut
    Ca je peux pas... j'ai pas les droits
    On m'a juste mis une base de test à disposition,
    Je ne suis qu'un pauvre stagiaire.
    Tout ch'ti qui pisse i tient s'biroute din ch'min
    La victoire est conservatrice, la défaite est évolutive

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par gscorpio
    mais il rentre meme pas dans le if... donc il trouve rien.

    POur le explode j'ai déjà essayé mais j'ai rien réussi à afficher.

    j'avais fait un truc du genre :

    list($a,$b,$c)=explode(':',$heuredemande);
    le problème vient sans doute de ton accès à ta bdd.
    As-tu essayé d'executer d'autres requetes?
    Car si ta requete fonctionne explode devrai fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    list=explode(" ",$heuredemande);
    echo(liste[1]); //renvoi l'heure complète, liste[0] étant la date. Si rien ne s'affiche c'est que ta requete ne renvoi rien et qu'elle n'est peu etre meme pas executée...

  7. #7
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut
    Oui ya pas de problèmes,

    une requete simple comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT requestdate,requesttime FROM wo WHERE wonum='$ses_ot'"
    fonctionne parfaitement et j'arrive à récupérer les champs avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sql->execute($req);
    		$r=$sql->nbresults();
    		echo"$r";
     
    		if($r!=0){ 
    		echo"dans le if";
    			for($j=0;$j<$sql->nbresults();$j++){
    				$datedemande=$sql->recup($j,"REQUESTDATE");
    				$heuredemande=$sql->recup($j,"REQUESTTIME");


    Avec l'explode j'arrive à rien. Il y a un problème au niveau du stockage de la variable.
    Bizarrement, de liste[1] à liste[8], il m'affiche caractère par caractère 0 1 - J A N - 0 0. Au delà, il affiche plus rien.

    Mais meme sans le transformer (en récupérant le champs "brut") j'ai jamais pu afficher l'heure. (je te rappelle que c'est enregistré au format 01/01/1900 hh:mm:ss).
    Est ce que ca pourrait venir de mon $sql-> recup? Il mettrait la date (01/01/1900) dans un tableau, l'heure aussi, et ensuite il me renverrait que la date??

    Merci beaucoup
    Tout ch'ti qui pisse i tient s'biroute din ch'min
    La victoire est conservatrice, la défaite est évolutive

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/05/2006, 23h46
  2. [Conception] récupération d'une variable php dans une autre page
    Par vali7 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/01/2006, 11h19
  3. petite question sur la récupération d'une variable
    Par minusette dans le forum Langage
    Réponses: 6
    Dernier message: 17/11/2005, 16h57
  4. [C#] Récupération d'une variable d'environnement
    Par jamy79 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/08/2005, 14h03
  5. Récupération d'une variable
    Par cach dans le forum Windows
    Réponses: 7
    Dernier message: 22/02/2005, 11h19

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