MRW.it Forum
  • Home
  • Forum
  • Fare Web
  • PHP

estrazione dati da mysql in php e salvataggio in cartella del server

  • Creatore Discussione Creatore Discussione luigichi
  • Data di inizio Data di inizio 28 Feb 2017
  • Tag Tag
    cronjob mysql php
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 6 Mar 2017
  • #21
borgo italia ha scritto:
ciao
se i venditori non sono molti forse ti conviene creare due array, uno con i nomi dei venditori e l'altro con i codici numerici
l'unica cosa da stare attenti che i due array abbiano lo stesso numero di elementi e usare ireplace che è caseinsensitive
PHP:
<?php
$venditori=array('Pinco','Pallo','Sempronio');
$codice=array('v1','v2','v3');
$stringa="1 11/11/2016,CLIENTE1,N.1 TAVOLON.2 SEDIE,Pallo";
echo "$stringa <br />";
$stringa = str_ireplace($venditori, $codice, $stringa);
echo "$stringa";
?>
Clicca per allargare...
Ciao,
Grazie per la risposta.
Volevo chiederti, è possibile inserire questo codice insieme a quello precedente in modo che faccia tutto in automatico?
Inoltre, come posso richiamare ($stringa="1 11/11/2016,CLIENTE1,N.1 TAVOLON.2 SEDIE,Pallo";) con ogni singola riga del mio database?
 
Ad
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 6 Mar 2017
  • #22
criric ha scritto:
per andare a capo prova cosi
PHP:
return str_replace("<br />", "\r", utf8_encode($value));
a me ha funzionato
Clicca per allargare...

ottimo! funziona grazie Criric
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 6 Mar 2017
  • #23
luigichi ha scritto:
ottimo! funziona grazie Criric
Clicca per allargare...

Scusami ma è tornato un problema, quello dei doppi apici sui campi di testo. Come posso eliminarli definitivamente?
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 6 Mar 2017
  • #24
Vi spiego inoltre qual'è il mio problema, e se risolvo questo finalmente posso utilizzare questa estrazione (grazie al vostro preziosissimo aiuto).

Ho bisogno di incrociare due tabelle per estrapolare il dato della colonna Venditore. Vi schematizzo il tutto:

tblprojects
id | name | description | status | deadline
19 | cliente1 | descrizione1 | 1 | 19/01/2016
22 | cliente2 | descrizione2 | 4 | 19/01/2016
23 | cliente3 | descrizione3 | 4 | 02/01/2016
27 | cliente4 | descrizione4 | 2 | 15/02/2016
77 | cliente5 | descrizione5 | 1 | 17/02/2016
...

e la tabella tblcustomfieldsvalues
id | relid | fieldid | fieldto | value
285 | 19 | 23 | projects | Pinco
285 | 22 | 23 | projects | Pallo
285 | 27 | 23 | projects | Sempronio
285 | 77 | 23 | projects | Tizio
...
(il relid della tabella tblcustomfieldvalues è collegato al campo id della tabella tblprojects. bisogna però richiamare il valore 23 del fieldid per dire allo script che deve controllare solo quei valori e lasciare perdere le righe della tabella del db che contengono altri valori numerici. come logica diciamo che dovrebbe pensare: cerca l'id x di tblprojects in relid di tblcustomfieldvalues e se il fieldid è 23 dammi il value(il corrispondente numerico) altrimenti lascia vuoto).

Ho bisogno che nel file che si estrapola con il .csv devono esserci le seguenti colonne:

name | description | status | deadline | Venditore

e come dicevo nel post precedente ho bisogno che i valori della colonna venditore siano numerici:
ad esempio a Pinco associo l'1, a Pallo associo il 2, a Sempronio il 3 e a Tizio il 4.

Spero si possa fare,
Grazie ragazzi!
 
Ultima modifica: 6 Mar 2017

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 7 Mar 2017
  • #25
devi usare la JOIN per collegare due tabelle
Codice:
SELECT *
FROM tblprojects t1
LEFT JOIN tblcustomfieldsvalues t2 ON t1.id = t2.relid
ORDER BY id
per il valore numerico devi crearti un array come diceva Borgo
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 10 Mar 2017
  • #26
scusate ragazzi, ma non riesco proprio a farlo funzionare. qualcuno di voi sarebbe così gentile da postare il codice funzionante?
io sono arrivato fino a qui e funziona, ma aggiungendo il resto... niente da fare

PHP:
<?php
$host="xxx.xxx.xxx.xxx";
$user="my_user";
$pass="my_psw";
$db_name="my_db";
$table="tblprojects";
$conn = mysqli_connect($host,$user,$pass,$db_name) or die("Errore connessione");
$query = "SELECT status, deadline, name, description FROM $table";
$result = mysqli_query($conn,$query) or die("Errore della query");

//delete file old
unlink('./export/file.csv');

//Open a file in write-mode (he creates it, if it not exists)
$fp = fopen('./export/file.csv', 'w');

// output the column headings
fputcsv($fp, array('status','deadline','name','description'));

function utf8($value) {
    return str_replace("<br />", " - ", utf8_encode($value));
}

// loop over the rows, outputting them
while ($row = mysqli_fetch_assoc($result)) {
    fputcsv($fp, array_map(utf8, $row));
}

//close the handler
fclose($fp);
?>

per favore, abbiate pazienza...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 10 Mar 2017
  • #27
prova cosi
PHP:
<?php

$host = "localhost";
$user = "root";
$pass = "password";
$db_name = "database";

$conn = mysqli_connect($host, $user, $pass, $db_name) or die("Errore connessione");
$query = "SELECT status,deadline,name,description,value FROM tblprojects T1 "
        . "LEFT JOIN tblcustomfieldsvalues T2 ON T1.id = T2.relid && fieldid = 23 "
        . "ORDER BY T1.id DESC";
$result = mysqli_query($conn, $query) or die("Errore della query");

//delete file old
if (file_exists("file.csv")) {
    unlink('file.csv');
}

//Open a file in write-mode (he creates it, if it not exists)
$fp = fopen('file.csv', 'w');

// output the column headings
fputcsv($fp, array('status', 'deadline', 'name', 'description', 'venditore'));

function utf8($value) {
    return str_replace("<br />", " - ", utf8_encode($value));
}

$venditori = array("", "pinco", "pallo", "tizio");

// loop over the rows, outputting them
while ($row = mysqli_fetch_assoc($result)) {
    $row['value'] = array_search($row['value'], $venditori);
    fputcsv($fp, array_map("utf8", $row));
}
//close the handler
fclose($fp);
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 12 Mar 2017
  • #28
Grandissimo Criric, funziona alla meraviglia.
Ultima cosa, solo a description e status mi vengono i valori contenuti in "".
Come posso eliminarli in modo che tutto il file csv sia delimitato solo dalle ,
Oppure, come posso mettere gli "" anche agli altri campi??

Grazie!!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 13 Mar 2017
  • #29
aggiungi il doppio apice nella funzione str_replace(), strano cmq a me non li mostra.
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 13 Mar 2017
  • #30
criric ha scritto:
aggiungi il doppio apice nella funzione str_replace(), strano cmq a me non li mostra.
Clicca per allargare...
dove lo devo aggiungere?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 13 Mar 2017
  • #31
PHP:
function utf8($value) {
    $value = str_replace("\"", "", $value);
    return str_replace("<br />", " - ", utf8_encode($value));
}
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 13 Mar 2017
  • #32
niente da fare, ho sostituito il codice che mi hai riportato ma estrapolando il file continuo ad avere il problema.
Ti riporto una riga di esempio:
status,deadline,name,description,venditore
2,2017-03-13,"ANTICHE RISERVE","N. 1 TAVOLO F00452",4

se si riuscisse anche ad avere la data in formato dd-gg-yyyy sarebbe fantastico
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 13 Mar 2017
  • #33
riposta lo script per intero
formattare le date in php è semplice, ne abbiamo parlato anche in questa discussione
PHP:
$row['campodata'] = implode("/", array_reverse(explode("-", $row['campodata'])));
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 13 Mar 2017
  • #34
ecco il codice completo.
Ho provato anche a inserire il codice per le date ma non funziona (ho provato anche a sostituire campodata con deadline (il campo con la data nel mio db) ma niente.

PHP:
<?php

$host="my_host";
$user="my_user";
$pass="my_pass";
$db_name="my_dbname";

$conn = mysqli_connect($host, $user, $pass, $db_name) or die("Errore connessione");
$query = "SELECT status,deadline,name,description,value FROM tblprojects T1 "
        . "LEFT JOIN tblcustomfieldsvalues T2 ON T1.id = T2.relid && fieldid = 23 "
        . "ORDER BY T1.id DESC";
$result = mysqli_query($conn, $query) or die("Errore della query");
$row['campodata'] = implode("/", array_reverse(explode("-", $row['campodata'])));

//delete file old
if (file_exists("./files/export.csv")) {
    unlink('./files/export.csv');
}

//Open a file in write-mode (he creates it, if it not exists)
$fp = fopen('./files/export.csv', 'w');

// output the column headings
fputcsv($fp, array('status', 'deadline', 'name', 'description', 'partners'));

function utf8($value) {
    $value = str_replace("\"", "", $value);
    return str_replace("<br />", " - ", utf8_encode($value));
}

$venditori = array("", "pinco", "pallo", "caio", "sempronio");

// loop over the rows, outputting them
while ($row = mysqli_fetch_assoc($result)) {
    $row['value'] = array_search($row['value'], $venditori);
    fputcsv($fp, array_map("utf8", $row));
}
//close the handler
fclose($fp);
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 13 Mar 2017
  • #35
la funzione per la data la devi mettere nel ciclo while prima dell fputcsv() con il nome del tuo campo deadline
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 13 Mar 2017
  • #36
ok, la data ora funziona correttamente. l'unica cosa che resta è il fatto che i valori di description e name sono tra gli apici...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 13 Mar 2017
  • #37
modifica la funzione cosi
PHP:
function utf8($value) {
    $value = str_replace("\"", "", $value);
    $value = str_replace("<br />", " - ", utf8_encode($value));
    echo $value . "<br/>";
    return $value;
}
dovrebbe stamparti a video tutte le stringhe formattate
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 13 Mar 2017
  • #38
così facendo quando faccio invio alla pagina php mi stampa a video i dati (qui li visualizzo correttamente senza apici)
andando a verificare nel file csv invece non cambia nulla.. continuo a vedere gli apici.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 13 Mar 2017
  • #39
non ho altre soluzioni. A me funziona e non capisco perchè a te no.
 
L

luigichi

Nuovo Utente
28 Feb 2017
29
1
3
36
  • 13 Mar 2017
  • #40
potrebbe essere un problema legato alla tabella di mysql? ho comunque controllato i due campi e non noto nulla di particolare.
in alternativa? come posso a questo punto fare in modo che tutti i valori siano tra le ""valore""?
a me interessa che sia omogeneo in modo che possa facilmente importarlo in altri gestionali o software che utilizziamo
 
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

E
Progressbar estrazione dati da tabella mySQL
  • epag8
  • 11 Apr 2021
  • Ajax
Risposte
9
Visite
4K
Ajax 12 Apr 2021
marino51
P
Menu a discesa con estrazione dati da datbase mysql
  • paolomi
  • 6 Apr 2011
  • PHP
  • 2
Risposte
21
Visite
7K
PHP 13 Apr 2011
paolomi
P
A
problema: estrazione dati da query mysql e assegnazione ad una variabile
  • ariannaari
  • 28 Set 2010
  • PHP
Risposte
2
Visite
4K
PHP 29 Set 2010
ariannaari
A
L
Estrazione dati php
  • LucaBordi
  • 23 Feb 2021
  • Database
Risposte
6
Visite
2K
Database 26 Feb 2021
LucaBordi
L
L
  • Bloccata
Estrazione dati casuali non doppioni
  • LucaBordi
  • 23 Feb 2021
  • MySQL
Risposte
1
Visite
2K
MySQL 23 Feb 2021
Max 1
D
Chiave unica in estrazione dati da array php
  • DiegoPTn
  • 22 Apr 2020
  • PHP
Risposte
0
Visite
1K
PHP 22 Apr 2020
DiegoPTn
D
Estrazione Dati Tessera Sanitaria
  • ronny1710
  • 8 Mag 2019
  • .NET Framework
Risposte
1
Visite
6K
.NET Framework 23 Nov 2020
enricotc
E
[PHP] estrazione ciclica dati con 2 dati alla volta
  • creatorweb
  • 6 Dic 2017
  • PHP
Risposte
2
Visite
1K
PHP 6 Dic 2017
creatorweb
[PHP] Estrazione dati da forum o da social network
  • Gigi87
  • 16 Nov 2017
  • PHP
Risposte
1
Visite
2K
PHP 20 Nov 2017
Sevenjeak
E
[PHP] estrazione dati in modo non continuativo
  • esseave
  • 10 Dic 2016
  • PHP
Risposte
1
Visite
1K
PHP 10 Dic 2016
marino51
C
Estrazione Dati da Pagine Gialle
  • cicalons
  • 23 Mar 2016
  • PHP
Risposte
0
Visite
2K
PHP 23 Mar 2016
cicalons
C
A
Estrazione dati da tabella sql
  • Alessandro Cavallari
  • 22 Feb 2016
  • MySQL
  • 2
Risposte
27
Visite
6K
MySQL 24 Feb 2016
borgo italia
T
Codice per estrazione dati da db
  • Takk
  • 24 Nov 2015
  • PHP
Risposte
4
Visite
2K
PHP 24 Nov 2015
Takk
T
L
estrazione dati per login
  • _LAIL_
  • 2 Giu 2015
  • PHP
Risposte
0
Visite
2K
PHP 2 Giu 2015
_LAIL_
L
W
Estrazione dati da DB
  • WottaFacca
  • 23 Mar 2015
  • PHP
  • 2
Risposte
20
Visite
4K
PHP 25 Mar 2015
zorro
L
Estrazione dati per settimana.
  • _LAIL_
  • 10 Mar 2015
  • PHP
Risposte
13
Visite
2K
PHP 5 Apr 2015
criric
L
estrazione dati e immagini in contemporanea
  • _LAIL_
  • 8 Mar 2015
  • PHP
Risposte
4
Visite
1K
PHP 10 Mar 2015
_LAIL_
L
M
estrazione dati casuali da database
  • michelei
  • 2 Feb 2015
  • Database
Risposte
0
Visite
2K
Database 2 Feb 2015
michelei
M
C
[PHP][MY SQL] - Estrazione dati database tramite form
  • Caibo81
  • 4 Nov 2014
  • PHP
Risposte
8
Visite
4K
PHP 7 Nov 2014
Caibo81
C
G
estrazione dati da DB tramite PHP errore time out
  • gabriele79
  • 20 Set 2014
  • PHP
Risposte
2
Visite
1K
PHP 22 Set 2014
gabriele79
G
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?