Aktualisierung der mysql datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Aktualisierung der mysql datenbank

    Ich hoffe das mir mit meiner Beschreibung geholfen werden kann.

    Folgendes

    In Datenbanktabelle 1 habe ich Daten diese Daten sollen wenn WHERE zutrifft mit Datenbanktabelle 2 verglichen werden und danach die ausgewählten daten aus Datenbank 2 in Datenbank 1 übernommen und zuletzt Der Datensatz aus Datentabelle 2 gelöscht werden der übernommen wurde.

    Das schaut ungefähr so aus:
    PHP-Code:
    Datenbanktabelle 1
    id  
    name |xxx|yyy |zzz |
    100 Heinz|  |  |
    101 Mark |  |  |
    102 Heino|  |  |

    Datenbanktabelle 2
    id  
    name |xxx|yyy |zzz |
    100 Heinz|  |  |
    101 Mark |  |  |
    102 Heino|  |  
    Wie kann ich hier richtig ansetzen?

  • #2
    was heißt, wenn where zutrifft??

    mal ein wenig genauer. denn davon hängt es ggf ab, ob du eine, zwei oder noch mehrere querys brauchst...
    **********
    arkos
    **********

    Kommentar


    • #3
      ich würde in beiden tabellen noch eine userid anlegen und dann

      select x,y,z from tab2 where userid=?
      update tab1 set(x=tab2x, y=tab2y ,z=tab2z where userid=?
      wenn update i.o.
      dann
      delete * from tab2 where userid=?

      Kommentar


      • #4
        Original geschrieben von gourmet
        ich würde in beiden tabellen noch eine userid anlegen und dann

        select x,y,z from tab2 where userid=?
        update tab1 set(x=tab2x, y=tab2y ,z=tab2z where userid=?
        wenn update i.o.
        dann
        delete * from tab2 where userid=?
        z.B.
        weitere Variante wäre ein UPDATE mit WHERE und 2 Tabellen und zu empfehlen ist in diesem Fall noch innodb mit Transaktionen, falls es nötig ist.

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          hab ein wenig rumprobiert und die Ausgabe mal mit echo anzeigen lassen, soweit so gut.

          Aber es klappt nicht das die Daten in die Datenbank übernommen werden.
          Habe ich das Update in die falsche Zeile eingefügt oder fehlt noch eine Abfrage?

          PHP-Code:
          $sql_count "SELECT count(*) FROM Tabelle 1 WHERE verlaengert='1'  "
          $sql "SELECT * FROM Tabelle 1 WHERE verlaengert='1'  ";

          $rsl mysql_query $sql_count );
          if (
          $rsl)
          {
          $hash mysql_fetch_array($rsl);
          $total = (int)$hash[0];
          }
          else
          {
          $total 0;
          }
          $result mysql_query $sql );    
          $zaehler='0';
          if (
          $result)
          {    
          while (
          $row=mysql_fetch_array($result))
          {
          echo 
          "WERBE-ID: ".$zaehler." = ".$row[id]."<br>"// pl
          $webs_count++;
          $zaehler++;
                                  
          $sqlb_count "SELECT count(*) FROM Tabelle 2 WHERE werbe_id='".$row[id]."' ";
          $sqlb "SELECT * FROM Tabelle 2 WHERE werbe_id='".$row[id]."'";
          $rslb mysql_query $sqlb_count );
          if (
          $rslb)
          {
          $hashb mysql_fetch_array($rslb);
          $totalb = (int)$hashb[0];
          }
          else
          {
          $totalb 0;
          }
           
          $resultb mysql_query $sqlb );    
          if (
          $resultb)
          {        
          while (
          $rowb=mysql_fetch_array($resultb))
          {
          // echo zur veranschaulichung der zu ändernden daten
          echo $rowb[user_id]."<br>";
          echo 
          $rowb[starts]."<br>";
          echo 
          $rowb[ends]."<br>";
          echo 
          $rowb[duration_id]."<br>";
          echo 
          $rowb[duration]."<br>";
          echo 
          $rowb[banner_uploaded]."<br>";
          echo 
          $rowb[banner_url]."<br>";
          echo 
          $rowb[bagrs]."<br>";
          echo 
          $rowb[bannerort0]."<br>";
          echo 
          $rowb[bannerort1]."<br>";
          echo 
          $rowb[bannerort2]."<br>";
          echo 
          $rowb[bannerort3]."<br>";
          echo 
          $rowb[bannerort4]."<br>";
          echo 
          $rowb[bannerort5]."<br>";
          echo 
          $rowb[bannerort6]."<br>";
          echo 
          $rowb[bannerort7]."<br>";
          echo 
          $rowb[bannerort8]."<br>";
          echo 
          $rowb[bannerort9]."<br>";
          echo 
          $rowb[fett]."<br>";
          echo 
          $rowb[marker]."<br>";
          echo 
          $rowb[topkat]."<br>";
          echo 
          $rowb[galry]."<br>";
          echo 
          $rowb[wohers4]."<br>";
          echo 
          $rowb[wohers5]."<br>";
          echo 
          $rowb[wohers6]."<br>";
          echo 
          $rowb[wohers7]."<br>";
          echo 
          $rowb[wohers8]."<br>";
          echo 
          $rowb[wohers9]."<br>";
                              
          echo 
          $rowb[s1h0]."<br>";
          echo 
          $rowb[s1h1]."<br>";
          echo 
          $rowb[s1h2]."<br>";
          echo 
          $rowb[s1h3]."<br>";
          echo 
          $rowb[s1h4]."<br>";
          echo 
          $rowb[s1h5]."<br>";
          echo 
          $rowb[s1h6]."<br>";
          echo 
          $rowb[s1h7]."<br>";
          echo 
          $rowb[s1h8]."<br>";
          echo 
          $rowb[s1h9]."<br>";
          echo 
          $rowb[s2h0]."<br>";
          echo 
          $rowb[s2h1]."<br>";
          echo 
          $rowb[s2h2]."<br>";
          echo 
          $rowb[s2h3]."<br>";
          echo 
          $rowb[s2h4]."<br>";
          echo 
          $rowb[s2h5]."<br>";
          echo 
          $rowb[s2h6]."<br>";
          echo 
          $rowb[s2h7]."<br>";
          echo 
          $rowb[s2h8]."<br>";
          echo 
          $rowb[s2h9]."<br>";
                                  
                                  
          if (
          $row[verlaengert]=='1') { // Abfrage ob Wert (1) in Tabelle 1 gesetzt wurde
          $verlanz=$row[count_verl]+1;
          $update_sql 
          "UPDATE Tabelle1 SET starts= '".$rowb[starts]."', ends= '".$rowb[ends]."', 
          duration_id= '"
          .$rowb[duration_id]."', duration= '".$rowb[duration]."', 
          banner_uploaded= '"
          .$rowb[banner_uploaded]."', banner_url= '".$rowb[banner_url]."', 
          bagrs= '"
          .$rowb[bagrs]."', bannerort0= '".$rowb[bannerort0]."', 
          bannerort1= '"
          .$rowb[bannerort1]."', 
          bannerort2= '"
          .$rowb[bannerort2]."', 
          bannerort3= '"
          .$rowb[bannerort3]."', 
          bannerort4= '"
          .$rowb[bannerort4]."', 
          bannerort5= '"
          .$rowb[bannerort5]."', 
          bannerort6= '"
          .$rowb[bannerort6]."', 
          bannerort7= '"
          .$rowb[bannerort7]."', 
          bannerort8= '"
          .$rowb[bannerort8]."', 
          bannerort9= '"
          .$rowb[bannerort9]."', 
          fett= '"
          .$rowb[fett]."', 
          marker= '"
          .$rowb[marker]."', 
          topkat= '"
          .$rowb[topkat]."', 
          galry= '"
          .$rowb[galry]."', 
          wohers4= '"
          .$rowb[wohers4]."', 
          wohers5= '"
          .$rowb[wohers5]."', 
          wohers6= '"
          .$rowb[wohers6]."', 
          wohers7= '"
          .$rowb[wohers7]."', 
          wohers8= '"
          .$rowb[wohers8]."', 
          wohers9= '"
          .$rowb[wohers9]."', 
          s1h0= '"
          .$rowb[s1h0]."', 
          s1h1= '"
          .$rowb[s1h1]."', 
          s1h2= '"
          .$rowb[s1h2]."', 
          s1h3= '"
          .$rowb[s1h3]."', 
          s1h4= '"
          .$rowb[s1h4]."', 
          s1h5= '"
          .$rowb[s1h5]."', 
          s1h6= '"
          .$rowb[s1h6]."', 
          s1h7= '"
          .$rowb[s1h7]."', 
          s1h8= '"
          .$rowb[s1h8]."', 
          s1h9= '"
          .$rowb[s1h9]."', 
          s2h0= '"
          .$rowb[s2h0]."', 
          s2h1= '"
          .$rowb[s2h1]."', 
          s2h2= '"
          .$rowb[s2h2]."', 
          s2h3= '"
          .$rowb[s2h3]."', 
          s2h4= '"
          .$rowb[s2h4]."', 
          s2h5= '"
          .$rowb[s2h5]."', 
          s2h6= '"
          .$rowb[s2h6]."', 
          s2h7= '"
          .$rowb[s2h7]."', 
          s2h8= '"
          .$rowb[s2h8]."', 
          s2h9= '"
          .$rowb[s2h9]."', 
          verlaengert='0', 
          count_verl= '"
          .$verlanz."' 
          WHERE id='"
          .$row[id]."' AND user='".$row[user_id]."' "
                          
          $resultbb mysql_query($update_sql); 
          if(!
          $resultbb)
          {
          echo 
          "<BR>Update fehlgeschlagen<BR>";

          }
          $webs_countb++;
          }
          else
          {
          $webs_countb 0;
          }
          }        
          }
          else
          {
          $webs_count 0;

          Kommentar


          • #6
            "Aber es klappt nicht ..." heißt? Fehlermeldungen (error_reporting ( E_ALL ))? Insgesamt solltest du dein ganzes Skript nochmal überdenken, bzw. erklären was du eigentlich machen willst - das sieht nicht sinnvoll aus.
            PHP-Code:
            echo $rowb[user_id]."<br>";
            echo 
            $rowb[starts]."<br>";
            echo 
            $rowb[ends]."<br>";
            ... 
            Für so etwas gibt es foreach!
            PHP-Code:
            foreach ( $rowb as $key => $value ) {
            echo 
            $value '<br />';
            }
            ...
            $sql 'UPDATE ...';
            foreach ( 
            $rowb as $key => $value ) {
            $sql .= $key ' = "' $value '" ';

            (siehe dazu auch Strings / Arrays)
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              rowb steht für den datensatz

              Bsp.:
              row[]
              0[]

              1[id]; zeigt 37555
              1[user]; zeigt ingo
              wenn neuer Datensatz
              2[id]; zeigt 37554
              2[user]; zeigt heinz

              warum sollte ich es jetzt umschreiben wenn ich es so vorerst besser verstehe, kann den quelltext später optimieren. Hab php nicht studiert. wenn ja könnte ich behaupten das es kein problem für mich wäre.

              also nochmal;

              als erstes frage ich in der datenbanktabelle 1 ab ob einträge vorhanden sind die verlängert wurden sind; wenn ja dann soll er sie mir anzeigen(aber nur die ID).

              zweitens soll eine abfrage in tabelle 2 gemachtwerden mit WHERE ID, welche ich aus der ersten abfrage erhalten habe.
              Mir werden als ergebnis die Eintrage angezeigt die geändert werden sollen bzw. schon sind aber noch nicht überträgen.

              die zwei sachen funktionieren gut.

              was nicht funktioniert ist das er kein datenbankupdate macht, auch keine fehlermeldung ausgibt.

              Ich kann mir gut vorstellen das beim update noch etwas fehlt oder liege ich ganz und gar falsch?

              Kommentar

              Lädt...
              X