Schrittweise holen und einfügen von Daten (SQL)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Schrittweise holen und einfügen von Daten (SQL)

    Hallo,

    ich habe da ein kleines Problem.
    Ich arbeite gerade an einem Konverter und aufgrund von Laufzeitfehlern (60 Sec, php.ini) soll er immer nur 4 Beiträge holen.

    PHP-Quellcode

    1. $substep = intval($request->variable('substep', '')); // Enthällt zb eine 8 wenn er bei Eintrag 8 angekommen ist
    2. $old_prefix = $request->variable('prefix', ''); // wird übergeben
    3. // Anzahl der User auslesen
    4. $sql = 'SELECT COUNT(user_id) AS pcount
    5. FROM ' . $old_prefix . 'users
    6. WHERE user_id <> 2
    7. AND user_id <> 1
    8. ORDER BY user_id ASC';
    9. $result = $db->sql_query_limit($sql, 1);
    10. $complete = intval($db->sql_fetchrow($result));
    11. $db->sql_freeresult($result);
    12. /*
    13. * User laden und Neu eintragen
    14. */
    15. $sql = 'SELECT *
    16. FROM ' . $old_prefix . 'users
    17. WHERE user_id <> 2
    18. AND user_id <> 1
    19. ORDER BY user_id ASC
    20. LIMIT '.$substep.', 4';
    21. $result = $db->sql_query($sql);
    22. while ($row = $db->sql_fetchrow($result)) {
    23. $sql_ary = array(
    24. 'user_id' => (int) $row['user_id'],
    25. 'user_type' => (int) 3,
    26. 'group_id' => (int) 2,
    27. 'user_permissions' => '',
    28. 'user_timezone' => $config['board_timezone'],
    29. 'user_dateformat' => $config['default_dateformat'],
    30. 'user_lang' => $config['default_lang'],
    31. 'user_style' => (int) $config['default_style'],
    32. 'user_actkey' => '',
    33. 'user_ip' => '',
    34. 'user_regdate' => $row['user_registered_since'],
    35. 'username' => $row['user_nickname'],
    36. 'username_clean' => utf8_clean_string($row['user_nickname']),
    37. 'user_email' => $row['user_email'],
    38. 'user_options' => 230271,
    39. 'user_sig' => '',
    40. 'user_sig_bbcode_uid'=> '',
    41. 'user_sig_bbcode_bitfield'=> '',
    42. 'user_posts' => $row['user_posts_per_page'],
    43. 'user_form_salt' => unique_id(),
    44. 'user_avatar' => $row['user_avatar'],
    45. );
    46. $sql = 'INSERT INTO ' . USERS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
    47. $db->sql_query($sql);
    48. }
    49. $db->sql_freeresult($result);
    50. if ( $substep > $complete )
    51. {
    52. header('Location: convert.php?step=2&prefix='.$old_prefix);
    53. }
    54. else
    55. {
    56. $substep = $substep+4;
    57. header('Location: convert.php?step=1&prefix='.$old_prefix.'&substep='.$substep);
    58. }
    59. if ( $substep > $complete )
    60. {
    61. $substep = $complete;
    62. }
    Alles anzeigen


    Das Problem ist nun, er schreibt lediglich einen Eintrag in die DB und meint er wäre fertig. Vorhanden sind 60 Einträge.

    EDIT: Ich korrigiere, bei 16 Einträgen mit einer vorgabe von jeweils 4 Einträgen pro select holt er nur 8. Er läuft also nur 2 mal durch

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Grommel ()