Grosse Datensätze

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

  • Grosse Datensätze

    Guten Morgen,

    vielleicht könnt ihr mir bei folgendem Problem weiterhelfen. Und zwar folgendes. Ich habe eine Kundentabelle, die etwa 50000 Datensätze enthält. Nun möchte ich alle Datensätze in eine andere Tabelle übertragen, bei denen nur bestimmte emails erlaubt sind. Des weiteren dürfen keine doppelten in die neue Tabelle übertragen werden. Bei meinem derzeitigen Script wird nach etwa 6500 Datensätze der Vorgang abgebrochen und ich weiss nicht warum.

    PHP-Code:
    if($newsletter=="ja")
    {
        if (!isset(
    $sendeid) or $sendeid == "") {$sendeid 0;}
        if (!isset(
    $gesamt) or $gesamt == "") {$gesamt 0;}
        
    $liste = array();
        if(
    $obj mysql_query("SELECT id, homepage_url, name, email, status FROM dhs_link_textlink WHERE
        status = 'freigeschaltet' AND id > '
    $sendeid' ORDER BY id ASC"))
        {
            while(
    $row mysql_fetch_assoc($obj))
            {
                
    array_push($liste,$row);
            }
        }
        if(
    $obj mysql_query("SELECT id, homepage_url, name, email, status FROM dhs_link_url WHERE
        status = 'freigeschaltet' AND id > '
    $sendeid' ORDER BY id ASC"))
        {
            while(
    $row mysql_fetch_assoc($obj))
            {
                
    array_push($liste,$row);
            }
        }
        if(
    $obj mysql_query("SELECT id, homepage_url, name, email, status FROM dhs_link_url_top_10 WHERE
        status = 'freigeschaltet' AND id > '
    $sendeid' ORDER BY id ASC"))
        {
            while(
    $row mysql_fetch_assoc($obj))
            {
                
    array_push($liste,$row);
            }
        }
        
    $restmails count($liste);
        
        
    $counter 0;
         for (
    $i=0$i<$restmails$i++)
        {
            
    $sendeid $liste[$i]['id'];
            
    $name $liste[$i]['name'];
            
    $email $liste[$i]['email'];
            
    $homepage_url $liste[$i]['homepage_url'];
            
            
    $check_url mysql_query("SELECT email from dhs_linkadresse WHERE email Like '$email'");
            
    $anzahl_url mysql_num_rows($check_url);
            
            if (
    $anzahl_url == AND $email != "")
            {
                
    $insert_daten mysql_query ("INSERT INTO dhs_linkadresse (id, name, email, homepage_url, status)
                VALUES
                ('', '
    $name', '$email', '$homepage_url', 'vorhanden')");

                
    $update_datensatz mysql_query("UPDATE dhs_link_textlink SET status_newsletter = 'ja' WHERE id = '$sendeid'");
                 
    $update_datensatz mysql_query("UPDATE dhs_link_url SET status_newsletter = 'ja' WHERE id = '$sendeid'");
                 
    $update_datensatz mysql_query("UPDATE dhs_link_url_top_10 SET status_newsletter = 'ja' WHERE id = '$sendeid'");
            }
        
            
    $gesamt=$gesamt +1;
            
    $counter $counter 1;
            
    $jetzt=time();
            
    $vergangen=$jetzt $start;

            if(
    $vergangen 15)
            {
                break;
            }
        }

        if (
    $counter $restmails)
        {
            echo 
    "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
            <html>
            <head>
              <title>Nachricht verteilen...</title>
              <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\">
              <meta http-equiv=\"refresh\" content=\"1;url=adressen_uebertragen.php?newsletter=ja&mid=
    $mid&sendeid=$sendeid&gesamt=$gesamt\">
            </head>
            <body>
            
    $ergebnis
            Bisher 
    $gesamt Adressen übertragen.<br><br> Bitte das Browserfenster noch nicht schliessen!
            </body>
            </html>"
    ;
        }
        else
        {
            echo 
    "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
            <html>
            <head>
                <title>Adressen übertragen...</title>
                <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\">
                </head>
            <body>
            
    $ergebnis
            Insgesamt 
    $gesamt Adressen übertragen. Fertig.<br>Sie koennen das Browserfenster jetzt schliessen!<br><a href=\"index.php\">zurueck</a>
            </body>
            </html>"
    ;
        }
    }
    if(
    $newsletter!="ja")
    {
        echo 
    "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
        <html>
        <head>
          <title>Adressen übertragen...</title>
          <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\">
        </head>
        <body>
        
    $ergebnis Wurst!
        </body>
        </html>"
    ;

    Außerdem dauert das Übertragen sehr lange. Wo könnte der Fehler sein?


    MFG
    Benji

  • #2
    du magst deine datenbank nicht, kann das sein?

    schau dir mal http://dev.mysql.com/doc/mysql/en/INSERT.html an, vor allem IGNORE und SELECT sollten deine aufmerksamkeit wecken...

    EDIT:
    und brich deinen beitrag um!
    Zuletzt geändert von mrhappiness; 01.12.2004, 09:12.
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar

    Lädt...
    X