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 :

Problème de variable


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut Problème de variable
    Voila j'ai créer un package que j'appel depuis un script php. Tout marche parfaitement bien excepté un petit detail que je n'arrive pas à résoudre ni à comprendre.

    En effet un de mes script doit afficher les donnée d'un patient dont la rue, sauf que cette rue ne s'affiche pas en entier seul les 12 premier caractères s'affichent.

    Voila la procedure du package qui doit afficher les infos sur le patient :

    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
     procedure recup_patient(
        operation IN char, 
        num OUT NOCOPY char, 
        nom OUT NOCOPY char, 
        prenom OUT NOCOPY char, 
        ville OUT NOCOPY char, 
        rue OUT NOCOPY ob_patient.ADRESSE_P.rue%type,--voila la variable parametre rue concerné 
        cp OUT NOCOPY char, 
        tel OUT NOCOPY char)
      is
      begin
        select deref(refpat).num_p, 
        deref(refpat).nom_p, 
        deref(refpat).prenom_p,
        deref(refpat).adresse_p.ville, 
        deref(refpat).adresse_p.rue, 
        deref(refpat).adresse_p.cp, 
        deref(refpat).tel_p
          into num, nom, prenom, ville, rue, cp, tel
          from operation
          where num_op=operation;
      end;
    J'ai essayer de donné le type char directement, de récupéré la donnée rue dans une variable intermédiaire mais rien a faire la variable n'accepte que 12 caractère alors qu'elle devrait en accepter 30.

    Je vais mettre le code php qui appel la procedure au cas ou, qui c'est ca vient peu etre de la :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Informations sur le patient ayant subit lopération</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link href="tableau.css" rel="stylesheet" type="text/css">
       </head>
       <body>
       <H1>Information sur le patient</H1>
    	<?php
    		$conn = oci_connect("hopital","hopital","//localhost/XE");
    		if(!$conn){
    			$e = oci_error();
    			print'erreur! : '.htmlentities($e['message']);
    			exit;
    		}
    		else{
    			if(isset($_GET['numero'])) $num_op = $_GET['numero'];
    			else $num_op = "";
    			$stmt = oci_parse($conn, "call pack_operation.recup_patient(:ope, :num, :nom, :prenom, :ville, :rue, :cp, :tel)");
    			oci_bind_by_name($stmt,":ope",$num_op,4);
    			oci_bind_by_name($stmt,":num",$num,4);
    			oci_bind_by_name($stmt,":nom",$nom,4);
    			oci_bind_by_name($stmt,":prenom",$prenom,4);
    			oci_bind_by_name($stmt,":ville",$ville,4);
    			oci_bind_by_name($stmt,":rue",$rue,4);
    			oci_bind_by_name($stmt,":cp",$cp,4);
    			oci_bind_by_name($stmt,":tel",$tel,4);
    			oci_execute($stmt);
    			oci_close($conn);
    			echo 'num : '.$num.'<br />';
    			echo 'nom : '.$nom.'<br />';
    			echo 'prenom : '.$prenom.'<br />';
    			echo 'telephone : '.$tel.'<br />';
    			echo 'adresse : <br />';
    			echo '	'.$rue.'<br />';
    			echo '	'.$cp.' '.$ville;
    		}
    	?>
    	<center><a href="http://127.0.0.1/Hopital/">Retour à l'accueil</a></center>
       </body>
    </html>
    Une question qui me trotte dans la tête également :
    A quoi sert le 4ème parametre de la fonction oci_bind_by_name?

    Voila si quelqu'un sait d'où viens le probleme...

    je travail avec Oracle 10g Express Edition, Windows XP, et php5.

  2. #2
    Membre habitué Avatar de Aliosha
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 138
    Points
    138
    Par défaut
    Question toute bête : tu as essayé avec un autre nom de rue ?
    (Je dis ça parce que j'avais lu quelque part que dans certains langages un caractère avec accent comptait pour deux caractères normaux)

    Et heu, sinon, une remarque de forme : beaucoup de noms de rue ont plus de trente caractères. :p
    « Le vécu-plat excite le chaos-rêve. » Traité de l'inactivité, Dimitri Grouchkch.

  3. #3
    Membre du Club
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut
    ouai j'ai essayer de changer le nom mais rien n'y fait, d'ailleur toute les variable sont limité à 12 caractere, parce que j'ai modifier le prenom et c'était le meme chose il affichait que les 12 premier caractère.

    Sinon c'est juste un exo pour les cours donc 30 caractères je pense que c'est suffisant lol

  4. #4
    Membre du Club
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut
    Bon une fois de plus j'ai crée un nouveau topic pour rien parce que j'ai résolu le probleme tout seul lool désolé

    En fait ca venait bien du oci_bind_by_name (le dernier parametre c'est la longueur de la variable php à qui l'on attribue a la variable oracle. Mais c'est bizarre parce que pour une longueur de 4 on a 12 caractere. comment ca se fait que sa augmente de 3 en 3???

  5. #5
    Membre habitué Avatar de Aliosha
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 138
    Points
    138
    Par défaut
    Bah dans la doc :

    Si vous devez lier des types abstraits de données (LOB/ROWID/BFILE), vous devrez l'allouer dans un premier temps, avec ocinewdescriptor(). La longueur length ne sert pas pour ces types et devrait être fixée à -1. La variable type indique au serveur Oracle, quel type de pointeur va être utilisé.
    « Le vécu-plat excite le chaos-rêve. » Traité de l'inactivité, Dimitri Grouchkch.

Discussions similaires

  1. [VB.NET] Probléme de variable
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/03/2005, 11h51
  2. [Debutant(e)]problème de variable d'environnement
    Par tolsam dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 19h08
  3. Problème de variable
    Par vp dans le forum Windows
    Réponses: 2
    Dernier message: 14/05/2004, 16h27
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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