Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre du Club Avatar de H.ile
    Profil pro
    Architecte de système d'information
    Inscrit en
    janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Macao

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : janvier 2008
    Messages : 117
    Points : 41
    Points
    41

    Par défaut Instancier une classe pour chaque résultat avec OCI_

    aloha
    Je définis ma classe :
    Code :
    1
    2
    3
    4
    5
    6
    <?php
    class AutoCompletionCPVille {
    	public $CodeInsee;
    	public $Nom;
    }
    ?>
    Merci à x zolezzi pour son tuto sur l'autocomplétion.
    Utilisant oracle, je passe plutôt par de l'OCI. Je récupère mon résultat de requête sous forme de tableau, mais je ne sais pas comment instancier chacun de mes résultats.

    Comment faire ?

    D'avance merci,

    Ci après mon code :
    Code :
    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
    <?php
    error_reporting(E_ALL || E_NOTICE);
    require_once('./AutoCompletionCPVille.class.php');
     
    function select_to_array($connexion, $select) 
    		{
    			// Crée un tableau, un curseur, compte les colonnes,
    			// fait le fetch en insérant dans le tableau.
    			$myResults = array();
    			// ora_do analyse (ora_parse) $query, l'exécute (ora_exec)
    			// et lit la première ligne du résultat (ora_fetch).
    			$statementID = oci_parse($connexion, $select);
    			$executeResult = oci_execute($statementID);
    			while (($row = oci_fetch_array($statementID, OCI_ASSOC))) {
    			   array_push($myResults, $row);
    			}
    			oci_free_statement($statementID);
    			return $myResults;
    		}
     
    //Initialisation de la liste
    $list = array();
     
    //Connexion Oracle
    $base = "SIGE";
    try
    {
    //echo 'bob';
        $ora_connSIGE = oci_connect("*****","$$$$$",$base);	
    }
    catch (Exception $ex)
    {
        echo $ex->getMessage();
    }
     
    //Construction de la requete
    $strQuery = "SELECT CO_INSEE CodeInsee, NOM Nom FROM BT_COMMU WHERE ";
    if (isset($_POST["codeInsee"]))
    {
        $strQuery .= "CO_INSEE LIKE :codeInsee ";
    }
    else
    {
        $strQuery .= "NOM LIKE :ville ";
    }
    $strQuery .= "AND DEPART = 'MARNE' ";
     
    //Limite
    if (isset($_POST["maxRows"]))
    {
        $strQuery .= "LIMIT 0, :maxRows";
    }
     
    if (isset($_POST["co_insee"]))
    {
        $value = $_POST["co_insee"]."%";
    	oci_bind_by_name($statementID, ":codeInsee", $value);
     
    }
    else
    {
        $value = $_POST["ville"]."%";
    	oci_bind_by_name($statementID, ":ville", $value);	
    }
    //Limite
    if (isset($_POST["maxRows"]))
    {
        $valueRows = intval($_POST["maxRows"]);
    	oci_bind_by_name($statementID, ":maxRows", $value);
    }
     
    $list = select_to_array($ora_connSIGE, $strQuery);
     
    echo json_encode($list);
    ?>

  2. #2
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 498
    Points
    9 498

    Par défaut

    avec PDO tu peux ça simplement

  3. #3
    Membre du Club Avatar de H.ile
    Profil pro
    Architecte de système d'information
    Inscrit en
    janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Macao

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : janvier 2008
    Messages : 117
    Points : 41
    Points
    41

    Par défaut

    J'essaie :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    try
    {
    	$ora_connSIGE = new PDO("oci:dbname=SIGE","****","$$$$$");
    	echo 'bob';
    }
    catch (Exception $ex)
    {
    	echo 'bob2';
        echo $ex->getMessage();
    }
    Mais j'obtiens :
    Fatal error: Class 'PDO' not found in ... on line 13
    Mon admin me dit que les librairies PDO sont bien installées, et que le pilote oracle aussi.

    Une idée ?

    D'avance, (re)merci

  4. #4
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 498
    Points
    9 498

    Par défaut

    fais un phpinfo tu verra bien si il a menti ou pas

  5. #5
    Membre du Club Avatar de H.ile
    Profil pro
    Architecte de système d'information
    Inscrit en
    janvier 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Macao

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : janvier 2008
    Messages : 117
    Points : 41
    Points
    41

    Par défaut

    huMMM;
    j'ai ça :
    zend.ze1_compatibility_mode Off Off
    C'est ce que je devais chercher ?
    mais j'ai aussi :
    ...--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared"

  6. #6
    Modérateur

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 9 498
    Points
    9 498

    Par défaut

    Regarde dans la section PDO, si y'en a pas c'est qu'il n'est pas activé

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •