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 :

Localiser une donnée


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut Localiser une donnée
    Bonjour ,

    je me connecte à une base de données qui vient d'une application Lotus Notes et je voudrais savoir où se trouve dans cette base de données un champs. Comment je peux faire avec une connexion odbc ou pdo ?

    Je sais que le champs contient "CR004#9591" mais je ne sais pas dans quelle table ni dans quel champs il est :s

    Merci pour votre aide.

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    source http://www.php.net/manual/fr/function.odbc-columns.php
    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
    $conn = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".$inputfile;, "", "");
     
    $tabs = odbc_tables($conn);
    $tables = array();
    while (odbc_fetch_row($tabs)){
        if (odbc_result($tabs,"TABLE_TYPE")=="TABLE") {
            $table_name = odbc_result($tabs,"TABLE_NAME");
            $tables["{$table_name}"] = array();
            $cols = odbc_exec($conn,'select * from `'.$table_name.'` where 1=2');  // we don't want content
          $ncols = odbc_num_fields($cols);
            for ($n=1; $n<=$ncols; $n++) {
                $field_name = odbc_field_name($cols, $n);
                $tables["{$table_name}"]["{$field_name}"]['len'] = odbc_field_len($cols, $n);
                $tables["{$table_name}"]["{$field_name}"]['type'] = odbc_field_type($cols, $n);
            }
        }
    }
    odbc_close ($conn);
    print_r($tables);
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    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
     
    <?php
     
    $conn =  odbc_connect ("lotusOpen",'','') or die("erreur conexion lotus open");
     
    $tabs = odbc_tables($conn);
    $tables = array();
    while (odbc_fetch_row($tabs)){
        if (odbc_result($tabs,"TABLE_TYPE")=="TABLE") {
            $table_name = odbc_result($tabs,"TABLE_NAME");
            $tables["{$table_name}"] = array();
            print_r($table_name);
            $cols = odbc_exec($conn,'select * from '.$table_name.' where 1=2');  // we don't want content
          $ncols = odbc_num_fields($cols);
            for ($n=1; $n<=$ncols; $n++) {
                $field_name = odbc_field_name($cols, $n);
                $tables["{$table_name}"]["{$field_name}"]['len'] = odbc_field_len($cols, $n);
                $tables["{$table_name}"]["{$field_name}"]['type'] = odbc_field_type($cols, $n);
            }
        }
    }
    odbc_close ($conn);
    print_r($tables);
    ?>
    Warning: odbc_exec() [<a href='function.odbc-exec'>function.odbc-exec</a>]: SQL error: [Lotus][ODBC Lotus Notes]No select item is available, SQL state S1000 in SQLExecDirect


    Warning: odbc_num_fields() expects parameter 1 to be resource, boolean given

    Warning: odbc_exec() [<a href='function.odbc-exec'>function.odbc-exec</a>]: SQL error: [Lotus][ODBC Lotus Notes]No select item is available, SQL state S1000 in SQLExecDirect

    ) Warning: odbc_num_fields() expects parameter 1 to be resource,
    pas content

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    j'ai essayer ceci et j'ai les messges d'erreure suivante comment resoudre cela?

    Column not found
    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
     
    <?php
    $table = array();
    $dbh= odbc_connect("lotusOpen",'', '');
    $tablelist = odbc_tables($dbh);
     while ($table[] = odbc_fetch_array($tablelist));  
     
      foreach ($table as $POST) {
     
    $champs[] = array();
    $champs2[] = array();
     
    $outval = odbc_columns($dbh,$POST["TABLE_NAME"] );
     
    while (odbc_fetch_into($outval, $pages)) {
     
     
        if($pages[2] ==$POST["TABLE_NAME"] ){
     
     
        $champs[] = $pages[3];
       $champs2[] = $pages[5];
     
     
        }
    }
     
    $condition = "";
     
    foreach ($champs as $key => $value) {
     
     
     
       if ( !is_array($value)&& $champs2[$key]=="VARCHAR"){
     
          // print_r($value);echo "</br>"; 
         //   echo $value ."                      ".$POST["TABLE_NAME"]."</br>";  
            $condition .= " ".$value ." LIKE '%CR004#9591%' or ";  
     
            }
    }
     
     
    $condition = substr($condition,0,-3);
     
     $lotusOpen = odbc_connect ("lotusOpen",'','') or die("erreur conexion lotus open");
                     $qry="SELECT * FROM ".$POST["TABLE_NAME"]." where ".$condition; 
     
             $result = odbc_exec($lotusOpen,$qry);
     
            while ($datas = odbc_fetch_array($result))
                    print_r($datas);echo "<br /><br />";
     
     
     
     
     
     
      }
     
    ?>

Discussions similaires

  1. localiser une chaine de caractère dans une base de données
    Par hayassinet dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/10/2010, 18h13
  2. localiser une chaine de caractère dans une base de données
    Par hayassinet dans le forum Accès aux données
    Réponses: 3
    Dernier message: 26/10/2010, 11h19
  3. tronquer une donnée
    Par closo dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/02/2004, 15h42
  4. Première occurence d'une donnée
    Par bob33 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/06/2003, 13h50
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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