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

importare dati xml a mysql

  • Creatore Discussione Creatore Discussione luigi777
  • Data di inizio Data di inizio 7 Gen 2013
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 8 Gen 2013
  • #21
facciamo con il clico for con php ,

solo che non so come fare ad integrarlo con il codice che mi hai scritto.
ti ringrazio buona giornata.
 
Ad
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 8 Gen 2013
  • #22
Fai delle prove di questo tipo

PHP:
<?php
$write = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<michele>';

$tables = array('news','photo','pagine');

foreach($tables as $table){
    
    $write.="<table_$table>\n";
    
    for($i=0;$i<100;$i++) $write.="<$table>
                                        <id>$i</id>
					<_userid>2</_userid>
					<_catid>1</_catid>
					<titolo>Test_01</titolo>
					<intro>Test_01</intro>
					<testo>Test_01</testo>
					<tag></tag>
					<data>2013-01-07 22:32:33</data>
					<active>1</active>
					<_update>2013-01-07 22:32:59</_update>
                                        </$table>";
    $write.="</table_$table>";
}
$write.="</michele>";
file_put_contents('file.xml',$write);
?>
In questo esempio le 3 tabelle devono avere tutti i campi uguali ora potresti fare 3 cicli for senza foreach mettendo i campi che vuoi per ogni tabella
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 8 Gen 2013
  • #23
ho generato solo la tabella news e lo importata .. prima ho svuotato l'utente e dopo lo importato e riasalta fuori questo problema:

Errore nella query: INSERT INTO news SET id='19',_userid='2',_catid='1',titolo='Test_01',intro='Test_01',testo='Test_01',data='2013-01-07 22:32:33',active='1',_update='2013-01-07 22:32:59' Duplicate entry '19' for key 'PRIMARY'

si blocca l'inserimento .. ed mi inserisce solo 15 dati.

qualche idea per risolvere il problema?

grazie mille e buona giornata a stasera.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 8 Gen 2013
  • #24
ciao, nel file xml generato hanno tutti l'id diverso e nel db non esistono vero? Se è tutto ok, allora aggiungi questo controllo per saltare la query nel caso ci siano 2 id uguali
PHP:
$id = '';
    foreach($current_array[$table] as $insert){
        $query = "INSERT INTO ".$table." SET ";
        if(isset($insert['id'])){
            if($insert['id']==$id) continue;
            $id = $insert['id'];
       }
        OttieniDati(is_array($insert) ? $insert : $current_array[$table]);

        if($query!="INSERT INTO ".$table." SET ")
        $db->query($query) or die('Errore nella query: '.$query.' '.$db->error);

        if(!is_array($insert)) break;
    }
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 8 Gen 2013
  • #25
si i dati non ci sono perché li svuoto prima di importare i dati salvati in xml,
però mi da il solito problema .. vedi se ho messo il codice nel punto giusto:

PHP:
<?php
// Includo 
require_once(dirname(__FILE__) . '/../inc.php');
require_once(dirname(__FILE__) . '/admin.php');

$xml = simplexml_load_file('michele.xml');
$tables = array('news','photo','pagine');

function OttieniDati($insert){
    global $db,$query;
    foreach($insert as $key => $value)
            if(!is_array($value))
             $query .= $db->real_escape_string($key)."='".$db->real_escape_string($value).(end($insert)==$value?'\'':'\',');
}

foreach($tables as $table){
    
    $current_array = json_decode(json_encode($xml->{'table_'.$table}),true);
    
  
 $id = '';
    foreach($current_array[$table] as $insert){
        $query = "INSERT INTO ".$table." SET ";
        if(isset($insert['id'])){
            if($insert['id']==$id) continue;
            $id = $insert['id'];
       }
        OttieniDati(is_array($insert) ? $insert : $current_array[$table]);

        if($query!="INSERT INTO ".$table." SET ")
        $db->query($query) or die('Errore nella query: '.$query.' '.$db->error);

        if(!is_array($insert)) break;
    }
 
  }


?>

ti ringrazio molto.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 8 Gen 2013
  • #26
Aggiungi un echo sull'id e dimmi quali stampa, se non ci sono doppioni vuol dire che c'è qualcosa nel database con lo stesso id
PHP:
if(isset($insert['id'])){ 
            if($insert['id']==$id) continue; 
            $id = $insert['id']; 
       } 
        echo "$id $table <br>";
        OttieniDati(is_array($insert) ? $insert : $current_array[$table]);
 
Ultima modifica: 8 Gen 2013
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 8 Gen 2013
  • #27
ecco l'output :
0 news1 news2 news3 news4 news5 news6 news7 news8 news9 news10 news11 news12 news13 news14 news15 news16 news17 news18 news19 news20 news21 news22 news23 newsErrore nella query: INSERT INTO news SET id='23',_userid='2',_catid='1',titolo='Test_01',intro='Test_01',testo='Test_01',data='2013-01-07 22:32:33',active='1',_update='2013-01-07 22:32:59' Duplicate entry '23' for key 'PRIMARY'

quindi? come mai ripete quello che vuole.. perché ogni volta importo cambia sempre l'id di quella che non vuole inserire.

ti ringrazio molto e buona serata.
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 8 Gen 2013
  • #28
questo è l'immagine del db che sto provando nel sito online per essere sicuri che funzioni



ti ringrazio molto.
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 8 Gen 2013
  • #29
Bah sembrerebbe tutto corretto , non so da cosa dipenda allora c'è qualcosa che ci sfugge, puoi provare a non settare l'id nei campi perché se è come chiave primaria sarà automaticamente auto_increment e quindi puoi anche non settarlo
 
L

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
  • 8 Gen 2013
  • #30
scusa, molto ma sono confuso sulla protezione dell'utente..

quindi abbiamo lavorato per nulla..

perché ho capito che devo solamente salvare i dati dell'utente perché essendo che ha chiesto di svuotare il database dai suoi dati che ha scritto.

quindi mi sa che l'importazione dei dati dell'utente disabilitato "avendo chiesto la cancellazione", non serve.

giusto?

grazie mille e scusate per il lavoro che vi ho fatto fare.
buona serata.
 
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
Devi accedere o registrarti per poter rispondere.

Discussioni simili

M
Importare dati Xml in un file txt
  • master1986
  • 4 Feb 2013
  • PHP
Risposte
0
Visite
2K
PHP 4 Feb 2013
master1986
M
Importare dati su tabella MySQL
  • Primian
  • 16 Giu 2017
  • MySQL
Risposte
3
Visite
4K
MySQL 17 Giu 2017
xone
P
Importare dati da Tessera Sanitaria CNS
  • perseoclub
  • 29 Set 2016
  • Programmazione
  • 2
Risposte
25
Visite
31K
Programmazione 10 Apr 2018
msccmra51
M
D
Importare dati da più files excel in access
  • Dejavier
  • 31 Mar 2016
  • MS Access
Risposte
3
Visite
10K
MS Access 25 Set 2017
edwards142
E
G
Importare dati da file csv
  • Gabriele94
  • 25 Feb 2015
  • PHP
Risposte
0
Visite
2K
PHP 25 Feb 2015
Gabriele94
G
importare dati csv in mysql
  • borgo italia
  • 26 Giu 2008
  • MySQL
Risposte
1
Visite
3K
MySQL 26 Giu 2008
_joker
J
F
Importare dati da un file txt
  • Fabio85
  • 9 Nov 2007
  • PHP
Risposte
3
Visite
3K
PHP 12 Nov 2007
Eliox
Importare VHS: video in bianco e nero
  • felino
  • 9 Gen 2021
  • Discussioni Varie
Risposte
6
Visite
2K
Discussioni Varie 17 Feb 2021
MaxLeon
M
A
Importare array in mysql
  • Arawan Omacha
  • 11 Mag 2020
  • PHP
Risposte
1
Visite
1K
PHP 12 Mag 2020
GioTeck
G
Importare database senza backup
  • Valerio93
  • 18 Dic 2019
  • MySQL
Risposte
0
Visite
1K
MySQL 18 Dic 2019
Valerio93
R
[MySQL] importare tabella cvs
  • ritademarco1950
  • 6 Nov 2019
  • MySQL
Risposte
0
Visite
926
MySQL 6 Nov 2019
ritademarco1950
R
  • Bloccata
come importare thunderbird in Outlook
  • camilia
  • 9 Ott 2019
  • Windows e Software
Risposte
1
Visite
2K
Windows e Software 9 Ott 2019
97harry brown
9
F
[PHP] Importare file CSV in HTML
  • Franco.cava697
  • 4 Set 2019
  • PHP
Risposte
12
Visite
4K
PHP 10 Set 2019
macus_adi
M
Importare - Manipolare Json Array
  • mau90
  • 21 Ago 2019
  • Sviluppo app per Android
Risposte
2
Visite
2K
Sviluppo app per Android 21 Ago 2019
mau90
M
N
[MySQL] Importare un database da MAMP a Remoto
  • Nasperino
  • 27 Apr 2019
  • MySQL
Risposte
4
Visite
2K
MySQL 27 Apr 2019
Max 1
M
[PHP] Importare file csv su server
  • Max61
  • 5 Apr 2019
  • PHP
Risposte
0
Visite
2K
PHP 5 Apr 2019
Max61
M
W
[WooCommerce] importare Prodotti suddivisi con: Categorie, Prodotti, Attributi
  • w_t
  • 23 Mar 2019
  • E-Commerce
Risposte
6
Visite
4K
E-Commerce 25 Mar 2019
w_t
W
T
mysql tutorial per importare tabelle access in mysql aiuto
  • twogate
  • 13 Mar 2019
  • MySQL
Risposte
2
Visite
2K
MySQL 13 Mar 2019
twogate
T
F
[PHP] Importare file CSV in HTML
  • Franco.cava697
  • 24 Gen 2019
  • PHP
Risposte
3
Visite
3K
PHP 25 Gen 2019
macus_adi
L
[Wordpress][HTML]Importare articoli o progetti in pagina html
  • lazlo
  • 5 Gen 2019
  • WordPress
Risposte
0
Visite
1K
WordPress 5 Gen 2019
lazlo
L
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?