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 :

Chargement fichier Excel avec PhpSpreadSheet et oci_connect()


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Par défaut Chargement fichier Excel avec PhpSpreadSheet et oci_connect()
    Bonjour,
    J'essaie d'importer un fichier excel, aficher quelques données et importer par la suite les données du tableau vers la BDD Oracle. J'ai un problème d'upload du fichier qui ne reste pas chargé sur la page lorsque je clique sur 'Afficher' pour l'importer par la suite vers la BDD. Voici le code :

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <form method="post" enctype="multipart/form-data">
        <input type="file" name="file">
     
        <input type="submit" name="display" value="Afficher">
        <input type="submit" name="insert" value="Inserer">
    </form>
     
    <?php
    require '..\PhpSpreadsheet\vendor/autoload.php';
    use PhpOffice\PhpSpreadsheet\IOFactory;
     
    // Connexion à la base de données Oracle
    	$username = 'user';
        $password = 'pwd';
    	$host = 'hostname';
    	$connname = 'dbname';
    	$conn = oci_connect(...............................);
     
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }
    // Récupérer la feuille active (la première)
    if (isset($_FILES['file'])) {
        $file = $_FILES['file']['tmp_name'];
        try {
    	$spreadsheet = IOFactory::load($file);
        $worksheet = $spreadsheet->getActiveSheet();
    	echo $file;
     
    if(isset($_FILES['file'])){
        echo "Le fichier est chargé";
    }
    if (isset($_POST['display'])) {
     
    echo $file;
     
    if(!isset($worksheet)){
    echo "Veuillez importer le fichier avant";
    exit;
    }
     
    // Récupérer la valeur de la cellule A7
    $cellA7 = $worksheet->getCell('A7')->getValue();
    // Récupérer la valeur de la cellule B7
    $cellB7 = $worksheet->getCell('B7')->getValue();
     
    // Afficher les valeurs des cellules A7 et B7 sur la page
    echo "La valeur de la cellule A7 est : " . $cellA7 . "<br>";
    echo "La valeur de la cellule B7 est : " . $cellB7;
    }
     
    if (isset($_POST['insert'])) {
    if(!isset($worksheet)){
    echo "You need to import the excel file first.";
    exit;
    }
    // Récupérer toutes les données du tableau
    $rows = $worksheet->toArray();
     
    // Boucle pour insérer les données dans la première table
    foreach ($rows as $row) {
        $sql = "INSERT INTO table1 (col1, col2, col3) VALUES (:col1, :col2, :col3)";
        $stmt = oci_parse($conn, $sql);
     
        oci_bind_by_name($stmt, ":col1", $row[0]);
        oci_bind_by_name($stmt, ":col2", $row[1]);
        oci_bind_by_name($stmt, ":col3", $row[2]);
     
        oci_execute($stmt);
    }
    // Boucle pour insérer les données dans la deuxième table
    foreach ($rows as $row) {
        $sql = "INSERT INTO table2 (col1, col2, col3) VALUES (:col1, :col2, :col3)";
        $stmt = oci_parse($conn, $sql);
     
        oci_bind_by_name($stmt, ":col1", $row[0]);
        oci_bind_by_name($stmt, ":col2", $row[1]);
        oci_bind_by_name($stmt, ":col3", $row[2]);
     
        oci_execute($stmt);
    }
    }
    } catch (Exception $e) {
        echo 'Veuillez choisir un fichier: ',  $e->getMessage(), "\n";
    }
    }

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 573
    Par défaut
    en ce qui concerne votre souci, commencez par un simple formulaire d'upload et ajoutez les fonctionnalités petit à petit pour trouver d'où vient le problème.

Discussions similaires

  1. [AC-2013] Chargement de fichier Excel avec récupération du nom de fichier
    Par Alexandre_P dans le forum Access
    Réponses: 5
    Dernier message: 14/06/2016, 15h51
  2. Réponses: 1
    Dernier message: 30/11/2011, 16h54
  3. [Excel] Comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/11/2007, 12h38
  4. Comment lancer un fichier Excel avec Access ??
    Par merlubreizh dans le forum Access
    Réponses: 5
    Dernier message: 12/09/2005, 14h20
  5. ouvrir un fichier Excel avec une requete perso
    Par legillou dans le forum Access
    Réponses: 9
    Dernier message: 21/06/2005, 15h14

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