• User

    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:vai:


  • ModSenior

    Se non posti qualche riga di codice, è impossibile aiutarti


  • User

    @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:smile5:


  • User Attivo

    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;
    }
    }


  • User

    @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?:smile5:


  • User

    Possibile che nessuno mi possa aiutare!:crying: