zu wenig datensätze in neuer tabelle

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

  • zu wenig datensätze in neuer tabelle

    Hi,

    ich möchte daten einer tabelle in eine andere übertragen, leider kommen da nicht soviele an wie ich das gerne hätte. Auf 10 datensätze gehen 2 verloren, auf 50 schon 3 und auf 100 sind es bereits 6. Vielleicht kann ja einer von euch was zu meinem code sagen, was da nicht stimmt.

    In der Ausgangstabelle befinden sich 212 Datensätze. Es kann also nicht sein das zu wenige da sind - zumindest bei meinem beispiel.

    PHP-Code:
    $query "SELECT name, inhalt, menge, typ, datum, genre, bild, ton, rip FROM ".$tabelle." ORDER by datum DESC limit 0, 10";
    $result mysql_query($query);

    while (
    $row mysql_fetch_row($result))
    {
         
    $query2 "INSERT INTO ".$tabelle."_temp (name, inhalt, menge, typ, datum, genre, bild, ton, rip) VALUES ('$row[0]', '$row[1]', '$row[2]', '$row[3]', '$row[4]', '$row[5]', '$row[6]', '$row[7]', '$row[8]')";
         
    $result2 mysql_query($query2);


  • #2
    treten irgendwo fehler auf ??

    gruss

    Kommentar


    • #3
      Probiers mal mit echo mysql_error(); Nach dem INSERT-Befehl. Vielleicht sind in der Temp-Tabelle auch Felder vom typ "Tinyint" vertreten? Die Packen max. 127 Zeilen, wenn sie Unique gesetzt sind.

      Kommentar


      • #4
        eventuell sagt dir dein mysql server ne Fehlermeldung, weil du ihn mit unnötig vielen Abfragen belastest ?

        kürzer gehts so:
        PHP-Code:
        $query "    SELECT name, inhalt, menge, typ, datum, genre, bild, ton, rip 
                    FROM "
        .$tabelle.
                    ORDER by datum 
                    DESC limit 0, 10"
        ;

        $result mysql_query($query);
        $sql="";
        while (
        $row mysql_fetch_row($result))
            
        $sql.=($sql?",":"")."('$row[0]', '$row[1]', '$row[2]', '$row[3]', '$row[4]', '$row[5]', '$row[6]', '$row[7]', '$row[8]')";

        mysql_query("INSERT INTO ".$tabelle."_temp (name, inhalt, menge, typ, datum, genre, bild, ton, rip) VALUES $sql"); 
        oder ganz kurz

        PHP-Code:
        mysql_query("    INSERT INTO $tabelle2
                        (name, inhalt, menge, typ, datum, genre, bild, ton, rip)
                            SELECT name, inhalt, menge, typ, datum, genre, bild, ton, rip 
                            FROM 
        $tabelle
                            ORDER by datum DESC
                            LIMIT 0,10
                    "
        ); 
        siehe http://www.mysql.com/doc/en/INSERT_SELECT.html
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          Erstmal Danke für Eure Hilfe, besonders aber bei TBT.

          Fehlermeldungen hatte ich keine bekommen, das einzige was war waren die Verschwundenen Datensätze. Das das ganze unsauber Programmiert war liegt daran das ich erst seit kurzen mit PHP bzw. MySQL arbeite.

          Ich hatte die ganz kurze Abfrage von TBT ausprobiert und siehe da, es kommen alle Datensätze in der 2. Tabelle an.

          Und nochmal mein Dank an Euch alle, hätte wohl selber nie ne Lösung dazu gefunden.

          Kommentar

          Lädt...
          X