v5.dk logo
Kom ind og besøg vores Discord Chat-community
Bliv medlem her eller læs mere om Discord her
Få adgang til alt på hele v5.dk
- bliv Premium-medlem for kun 39,95 kr.

Mere info Køb nu

Premium på v5.dk
v5.dk logo  v5.dk e-learning
Log på med Facebook
  • Log ind på v5.dk
  • Opret bruger
  • Log ind
  • v5.dk Premium
  • v5.dk Premium
  • Hvad siger vores kunder?
  • E-læring for begyndere
  • icon for WordPress 4 e-learning WordPress 4
  • icon for Office 365 e-learning Office 365
  • icon for Microsoft Word e-learning Microsoft Word
  • Bloggen for alle
  • E-læring for nørder
  • icon for PHP-programmering e-learning PHP-programmering
  • icon for iOS Programmering e-learning iOS Programmering
  • icon for Linux Server e-learning Linux Server
  • Bloggen for nørder
  • Arkiverede videoer
  • Fællesskab
  • Forum
  • Idéer og ønsker
  • Markedspladsen
  • v5.dk Premium
  • Gratis webhotel
  • Cloud-servere
  • Om v5.dk
  • Søg på v5.dk
  • Om v5.dk ApS
    • Om virksomheden
    • RSS-feeds og tjenester
    • Driftsmeddelelser
    • Presse-kit
    • Ledige jobs
    • Social Netværk
      • Facebook
      • Twitter
      • Instagram
    • Alt det andet
      • Forretningsbetingelser
      • Ophavsret og Copyright
  • Kontakt kundeservice
  • FAQ og Hjælp
    • Premium og abb.
    • Videoer og Afspiller
    • Forum og Points
    • Cloud-servers
  • Partner/Virksomhed
  • Partner-kanal
v5.dk logo mobile
  • Menu
  • Opret bruger

Upload data i eksisterende mySql fra et ODS ark

  • v5.dk
  • Forum
  • PHP-programmering
  • Upload data i eksisterende mySql fra et ODS ark
  • Sidevisninger: 3157 har set dette indlæg
Besvar #0Spørgsmål oprettet af @jens-peterkongerslev | 55 points
45 points ude 7 indlæg 6 år siden Spørgsmål besvaret
avatar
 

Jeg har en tabel i mySql som jeg gerne vil kunne poppulere med data fra OpenOffice regneark.

Regnearket indeholder ikke nødvendigvis alle felter som findes i tabellen.
Blandt andet er der et autoincrementeret felt på tabellen, som ikke er i regnearket. Der er også timestamp-felter på tabellen som ikke er i regnearket. De felter som ikke er i regnearket, skal blot initieres med blank eller det som er defineret på tabellen som standardværdi.

Eksempel på tabel:
id (autoincrement) - er aldrig i regnearket
nr - altid i regneark
beskrivelse - altid i regneark
antal - kan være i regneark
holdbarTil (timestamp) - er aldrig i regnearket

Eksempel på regneark (som jeg gætter på at den ser ud ved import):
1, letmælk i store flasker, 5, 2016-12-10-14.55.33.123456
2, videofilm med fiskeeventyr, 3
3, æbler,, 2017-12-24-17.33.44.123456

Det vil selvfølgelig være fedest at det foregår på en admin side på mit site, men det kan selvfølgelig også være via mySql admin.

Jeg glæder mig til at høre om der er nogle gode forslag eller eksempler til hvordan jeg kan løse opgaven.

Mvh. Jens Peter 

avatar
 
Besvar#1 @db Admin kommenterede for 6 år siden

Hejsa

Hvis du i OpenOffice eksportere dit regneark til et CSV-format, kan du nemt arbejde med data herfra i PHP.

Det kan enten ske vha. f.eks. PHPs egne CSV-funktioner som http://php.net/manual/en/function.str-getcsv.php 

Der findes også awesome færdige klasser du kan benytte til CSV-håndtering: https://github.com/parsecsv/parsecsv-for-php

Der findes også klasse til at arbejde med .ods filer, men det er ikke nogle jeg har testet eller leget med: https://sourceforge.net/projects/ods-php/

 


Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

avatar
 
Besvar#2 @jens-peterkongerslev kommenterede for 6 år siden

 #1  Hej Daniel

Det ser meget spændende ud med parsecsv-for-php
Jeg kan dog ikke finde ud af hvordan jeg refererer til de enkelte koloners indhold.

Jeg har brugt eksemplet:
<table border="0" cellspacing="1" cellpadding="3">
<tr>
<?php foreach ($csv->titles as $value): ?>
<th><?php echo $value; ?></th>
<?php endforeach; ?>
</tr>
<?php foreach ($csv->data as $key => $row): ?>
<tr>
<?php foreach ($row as $value): ?>
<td><?php echo $value; ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>

Men det udskriver jo blot hele linien med alle kolonner, jeg vil jo gerne have fat i indholdet af hver linies kolonner så jeg kan udføre en insert på min tabel...

Jeg kan ikke finde noget dokumentation på hvordan jeg skal bruge parsecsv-for-php og heller ikke et eksempel på hvordan jeg gør det jeg ønsker... Kan du mon lede på på vej ;-) 

 

Mvh. Jens Peter 

avatar
 
Besvar#3 @jens-peterkongerslev kommenterede for 6 år siden

Det ser ud til jeg måske kan finde ud af at gøre det jeg vil med PHPs egne csv funktioner. Spændende :-) 

avatar
 
Besvar#4 @jens-peterkongerslev kommenterede for 6 år siden

Det er nu lykkedes mig at få PHPs egne funktioner til at virke, det er jo super fedt.

Hvis du skulle lave et gennemløb af et directory på serveren som eks. har følgende indhold:
1.jpg
2.jpg
2_1.jpg
2_2.jpg
3.jpg
.
.
.
100.jpg
100_1.jpg

- og du vil tælle antal filer inden for hvert billede, altså:
billed 1 findes i 1 udgave
billed 2 findes i 3 udgaver
billed 3 findes i 2 udgaver
.
.
.
billed 100 findes i 2 udgaver

Hvordan ville du så gøre det i PHP?

Mvh. Jens Peter

Dette svar er accepteret af OP og tildelt 45 points
avatar
 
Besvar#5 @db Admin svarede for 6 år siden

Hej Peter,

Du bedes markere dette spørgsmål som løst, og oprette en ny forumtråd med dit nye spørgsmål, så er vi klar til at hjælpe dig 

Hvis du har lyst, må du rigtig gerne dele løsningen på CSV-problemet med os andre herinde, så alle kan få glæde af den viden du har tilegnet dig.

Ps. Super fedt at du selv fandt frem til løsningen, den bedre måde at lære på, er ofte ved selv at lege og prøve.

Redigeret af db @db  d. 31.10.2016 kl. 07:51

Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

avatar
 
Besvar#6 @jens-peterkongerslev kommenterede for 6 år siden

Jeg endte med følgende løsning...

<?php
include("app.php");
$app = new minAwesomeApp;
$file = fopen("../admin/uploads/Ting.csv","r");
while(! feof($file))
{
$linie = fgetcsv($file,0,";");
$app->DatabaseInsert( "ting", array('tingId','tingNr','beskrivelse'), array($linie[0], $linie[1], $linie[2]));
}

fclose($file);
?>

Her tager jeg bare de første 3 elementer i hver regnearks-række og inserter dem i tabellen.

avatar
 
Besvar#7 @jens-peterkongerslev kommenterede for 6 år siden

 #5  Hej Daniel

Hermed gjort :-)

Det er fuldstændig rigtigt, at den bedste måde at lære er ved at prøve selv. Men når jeg står helt blank og skal igang, har jeg brug for intro (gerne et eksempel) til at komme igang.

Tak for hurtig og seriøs hjælp.

Spørgsmålet er besvaret, men du er altid mere end velkommen til at skrive en kommentar!
avatar
 

Du er ikke logget ind

Du skal være logget ind på v5.dk før du kan benytte vores forum. Det er ganske gratis at oprette en bruger.

Opret en ny gratis bruger Log ind

Følger med i denne tråd

jens-peterkongerslev

Forum kategorier

  • Generelt
  • Guides & Howto84
  • Offtopic / Andet158
  • Microsoft Office
  • Microsoft Word11
  • Microsoft Excel4
  • Microsoft PowerPoint0
  • Web og hjemmesider
  • Wordpress17
  • Operativsystemer
  • Apple Mac OS X14
  • Apple iOS28
  • Microsoft Windows4
  • Linux16
  • Teknologier
  • Netværk og WiFi3
  • Internet-tjenester9
  • Programmering
  • PHP-programmering124
  • iPhone-/Xcode-programmering9

Aktive forum-tråde lige nu

Er det værd at have en "portfolio"-hjemmeside!?
Fejlkode i form af bip-lyde ved opstart af gammel stationær PC
MacBook gået ud ved indsættelse at IPhone SE…
Is Weed Legal in Europe
Buy real passport online|Buy counterfeit money
Chrome Auto Fyld holdt op med at virke
ÆØÅ
Tegne Program
Bygget med af v5.dk
© Copyright 2006-2023 • Forretningsbetingelser • Copyright • Persondata- og Cookiepolitik
v5.dk ApS - Åbogade 15 - 8200 Aarhus N - CVR: 36902833
v5.dk logo
Hej, vi hedder v5.dk og vi laver e-learning på dansk

v5.dk er sat i verden for at gøre teknologi tilgængeligt og anvendeligt for både professionelle og almindelige brugere på alle niveauer.

93 200 555
  Skriv til os
v5.dk bruger cookies til at huske dine indstillinger, livechat samt til statistik
 

Alle vores priser er inkl. moms Sikker SSL-beskyttet forbindelse

Dankort og Visa-Dankort  Visa  Mastercard og Mastercard Junior  Maestro

  • Produkter
  • v5.dk Premium
  • Cloud-servers
  • v5.dk
  • Om v5.dk
  • Kunderne siger
  • Kontakt os
  • Presse
  • Stay updated
  • RSS & tjenester
  • Søg på v5.dk
  • Sitemap