- Home
- Categorie
- Coding e Sistemistica
- PHP
- Caricamento dati su due tabelle legate da ID!!
-
Caricamento dati su due tabelle legate da ID!!
Salve a tutti ,
il problema del giorno è questo:
Ho un file xml che tramite un parser mi stampa tutti i dati in php.
Questi dati utenza, e prodotto sono legati da un id .
Riesco a creare una query per l'utenza ed una per il prodotto, ed i dati vengono caricati correttamente sul db.
Il problema è che il prodotto non si lega all' "ID" di conseguenza non viene attribuito nesun codice.
Grazie a satifal, ceccus e olaola sono arrivato fino a qui.
Spero in un aiuto definitivo, poichè è da due settimane che sto dietro a questo problema.
Grazie a tutti anticipatamente
-
Se non posti qualche riga di codice, è impossibile aiutarti
-
@Thedarkita said:
Se non posti qualche riga di codice, è impossibile aiutarti
Scusa, la testa mi sta per scoppiare:x
Vado per step:
File xml :<CONTACT> <ID>01000</ID> <TITLE>vendo....</TITLE> <MAKE>VOLVO</MAKE> <REGION>SICILIA</REGION> <CITY>CATANIA</CITY> <NAME>PEPPE</NAME> <FIRST_NAME>VOLPE</FIRST_NAME> <POSTCODE>95100</POSTCODE> </CONTACT>
File php per tabella1:
<?php function insertContact ($id, $titolo, $marca, $regione){ $query="INSERT INTO tabella1 VALUES('','$titolo','$marca','$regione','$luogo')"; $result = executeQuery($query); } function executeQuery($query) { $DB_SERVER = "xxxxxx"; $DB_USERNAME = "xxxxx"; $DB_PASSWORD = "xxxxx"; $DB_NAME = "xxxxxx"; $connect = mysql_connect($DB_SERVER, $DB_USERNAME, $DB_PASSWORD); $db = mysql_select_db($DB_NAME, $connect); $result = mysql_query($query,$connect) or die("Errore"); mysql_close($connect); return $result; } if (!($fp=@fopen("mio_file.xml", "r"))) die ("Couldn't open XML."); $usercount=0; $userdata=array(); $state=''; function startElementHandler ($parser,$name,$attrib){ global $usercount; global $userdata; global $state; switch ($name) { case $name=="NAME" : { break; } case $name=="" : { break; } default : {$state=$name;break;} } } function endElementHandler ($parser,$name){ global $usercount; global $userdata; global $state; $state=''; if($name=="CONTACT") {$usercount++;} } function characterDataHandler ($parser, $data) { global $usercount; global $userdata; global $state; if (!$state) {return;} if ($state=="ID") { $userdata[$usercount]["id"] = $data;} if ($state=="TITLE") { $userdata[$usercount]["titolo"] = $data;} if ($state=="REGION") { $userdata[$usercount]["regione"] = $data;} if ($state=="MAKE") { $userdata[$usercount]["marca"] = $data;} } if (!($xml_parser = xml_parser_create())) die("Couldn't create parser."); xml_set_element_handler( $xml_parser, "startElementHandler", "endElementHandler"); xml_set_character_data_handler( $xml_parser, "characterDataHandler"); while( $data = fread($fp, 4096)){ if(!xml_parse($xml_parser, $data, feof($fp))) { break;}} xml_parser_free($xml_parser); for ($i=0;$i<$usercount; $i++) { if ($userdata*["id"]) {echo "".$userdata*["id"]."<br><br>";} if ($userdata*["titolo"]) {echo "".$userdata*["titolo"]."<br><br>";} if ($userdata*["regione"]) {echo "".$userdata*["regione"]."<br>";} if ($userdata*["marca"]) {echo "".$userdata*["marca"]."<br>";} insertContact($userdata*["id"], $userdata*["titolo"], $userdata*["regione"],$userdata*["marca"]); } ?>
File php per tabella 2
<?php function insertContact ('','$nome','$cognome','$cap','$luogo'){ $query="INSERT INTO tabella2 VALUES('','$nome','$cognome','$cap','$luogo')"; $result = executeQuery($query); } function executeQuery($query) { $DB_SERVER = "xxxxxx"; $DB_USERNAME = "xxxxx"; $DB_PASSWORD = "xxxxx"; $DB_NAME = "xxxxxx"; $connect = mysql_connect($DB_SERVER, $DB_USERNAME, $DB_PASSWORD); $db = mysql_select_db($DB_NAME, $connect); $result = mysql_query($query,$connect) or die("Errore"); mysql_close($connect); return $result; } if (!($ stringa non permessa", "r"))) die ("Couldn't open XML."); $usercount=0; $userdata=array(); $state=''; function startElementHandler ($parser,$name,$attrib){ global $usercount; global $userdata; global $state; switch ($name) { case $name=="NAME" : { break; } case $name=="" : { break; } default : {$state=$name;break;} } } function endElementHandler ($parser,$name){ global $usercount; global $userdata; global $state; $state=''; if($name=="CONTACT") {$usercount++;} } function characterDataHandler ($parser, $data) { global $usercount; global $userdata; global $state; if (!$state) {return;} if ($state=="ID") { $userdata[$usercount]["id"] = $data;} if ($state=="NAME") { $userdata[$usercount]["nome"] = $data;} if ($state=="FIRST_NAME") { $userdata[$usercount]["cognome"] = $data;} if ($state=="POSTCODE") { $userdata[$usercount]["cap"] = $data;} } if (!($xml_parser = xml_parser_create())) die("Couldn't create parser."); xml_set_element_handler( $xml_parser, "startElementHandler", "endElementHandler"); xml_set_character_data_handler( $xml_parser, "characterDataHandler"); while( $data = fread($fp, 4096)){ if(!xml_parse($xml_parser, $data, feof($fp))) { break;}} xml_parser_free($xml_parser); for ($i=0;$i<$usercount; $i++) { if ($userdata*["id"]) {echo "".$userdata*["id"]."<br><br>";} if ($userdata*["nome"]) {echo "".$userdata*["nome"]."<br><br>";} if ($userdata*["cognome"]) {echo "".$userdata*["cognome"]."<br>";} if ($userdata*["cap"]) {echo "".$userdata*["cap"]."<br>";} insertContact($userdata*["id"], $userdata*["nome"],$userdata*["cognome"], $userdata*["cap"]); } ?>
Spero di essemi spiegato
-
Scusa,nel file php tabella1, perchè hai inserito le parentesi e gli uguali ai case?
function startElementHandler ($parser,$name,$attrib){
global $usercount;
global $userdata;
global $state;
switch ($name) {
case "NAME" :
break;default :
$state=$name;
break;
}
}
-
@ilnetsurfer said:
Scusa,nel file php tabella1, perchè hai inserito le parentesi e gli uguali ai case?
function startElementHandler ($parser,$name,$attrib){
global $usercount;
global $userdata;
global $state;
switch ($name) {
case "NAME" :
break;default :
$state=$name;
break;
}
}
Scusa è rimasta un poco di sporcizia dal codice d'origine.
Percaso hai una soluzione al mio problema o ti sei ritrovato in una situazione del genere?
-
Possibile che nessuno mi possa aiutare!