2017-09-26 2 views
-1

Je sais comment je peux obtenir des données d'Excel vers mysql en utilisant php. S'il vous plaît avoir à regarder le tableau Excel ci-dessous:Obtenir des données de ligne Excel dans la colonne mysql dans php

Excel file

Je veux des données d'entrée ci-dessous table mysql. A partir de la colonne du fichier Excel, les données D, E, F, G seront insérées comme ligne dans la table mysql & colonne A, B, C & H sera entré comme colonne mais suivra le numéro de la ligne comme A, B, C & D

MYSQL TABLE WITH DATA

je me sens ce que je demande est un peu compliqué. Mais s'il vous plaît essayez de donner une idée ou de conseiller sur la façon de le faire. Je ne peux pas changer le fichier Excel, car il y a beaucoup de fichiers à faire de cette façon.

+0

quel est le statut de la question? Si on l'a résolu, il devrait être marqué comme résolu en acceptant une réponse. Si vous ne savez pas comment, s'il vous plaît demander. Il suffit de cocher la case grise à côté d'une réponse jusqu'à ce qu'elle devienne verte. –

+0

Où est le code pour tout cela? –

Répondre

0

Fondamentalement, une ligne d'Excel va insérer/mettre à jour 4 lignes dans MySQL. Peut utiliser PhpSpreadsheet pour une itération facile du fichier Excel.

La logique de pseudo-php-code sera quelque chose comme:

Pour inserts seulement:

// Statement prepare 
$DB = new PDO('mysql:host='.$host.';dbname='.$base., $user, $pass); 
$ST = $DB->prepare('insert into table(field1, fiel2, ..) values (:field1, :field2, ..)'); 

// Excel iteration 
while ($Row = $Excel->NextRow()) { 
    $ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['D']]); 
    $ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['E']]); 
    $ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['F']]); 
    $ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['G']]); 
} 

Pour synchronisation:

// Statement prepare 
$DB = new PDO('mysql:host='.$host.';dbname='.$base., $user, $pass); 
// Update statement 
$ST = $DB->prepare('update table set field2 = :field2 where field1 = :field2 and ..)'); 

// Excel iteration 
while ($Row = $Excel->NextRow()) { 
    $ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['D']]); 
    $ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['E']]); 
    $ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['F']]); 
    $ST->execute(['field1' => $Row['A'], .. 'field2' => $Row['G']]); 
} 

espère que vous avez l'idée.

+0

Bonjour, merci pour votre réponse. Pourriez-vous s'il vous plaît me donner un code/script complet, un peu difficile à comprendre pour moi, en tant que débutant. –

+2

Terminer le script de travail juste pour copier/coller? J'aime la charité, mais rarement le code pour cela :) Je vous ai donné l'approche, commencer à penser. StackOverflow n'est pas un service de codage gratuit. – Marcodor

0

Voici ci-dessous le code, c'est bien maintenant.

$fft1=888; 
$fft2=777; 
$fft3=""; 
$fft4=999; 

$fft5=100; 
$ctnqty=10; 
$friendslist = "$fft1,$fft2,$fft3,$fft4"; 
$id = $fft5; 
$friendarray = explode(",", $friendslist); 
    $frienduserarray = array(); 

for ($n = 0; $n < count($friendarray); $n++) { 
    $friendidpush = "('".$id."','".$friendarray[$n]."','".$ctnqty."'),"; 
    array_push($frienduserarray, $friendidpush); 
} 
$query = "INSERT INTO freddyhipment (style, orderno,ctnqty) VALUES "; 
$friendarray = explode(",", $friendslist); 

foreach ($friendarray as $order) { 
$query .= "('" . $id . "','" . $order . "','" . $ctnqty . "'),"; 
} 

$query = substr($query, 0, -1); // remove trailing comma