Hjælp til PHP/SQL sætning
Jeg bruger PHP-fusion, og heri Newsletter infusionen, som benytter tabellen newsletter_subs til at holde subscribtions i.Jeg kender desværre selv kun lidt til PHP og SQL.
Jeg ønsker en SQL, der kan opdatere tabel newsletter_subs med alle de brugere fra tabel users, som ikke findes i newsletter_subs.
Jeg vil bruge den SQL til, at køre den en gang i mellem, for at få alle med inden jeg udsender et newsletter.
Altså:
Feltet i tabel users hedder user_id - smallint(5)
Feltet i tabel newsletter_subs hedder sub_user - smallint(5)
Jeg har allerede fået en del hjælp fra PHP-fusion teamet, som bestemt er dygtige, men de er travle mennesker, og den PHP/SQL jeg fik af dem virkede ikke helt som den skulle.
Den ser sådan ud:
<?php
$result = dbquery("SELECT * FROM ".$db_prefix."users ORDER BY user_name");
while ($data = dbarray($result)) {
if (dbcount("(newsletter_sub_id)", "newsletter_subs", "newsletter_sub_user='".$data['user_id']."'") == "0") {
$result = dbquery("INSERT INTO ".$db_prefix."newsletter_subs (newsletter_sub_user) VALUES ('".$data['user_id']."')");
}
}
?>
Den virker for så vidt, men den tilføjer kun én ad gangen.
Jeg skal køre den flere gange, indtil alle er oprettet.
Altså, hvis fx. tabel Users indeholder 100 brugere, og tabel newsletter_subs kun 90, og jeg så kører koden herover, så oprettes kun 1 ny instans i newsletter_subs, så der så er 91.
Næste gang 92, osv.
Jeg skal altså køre den 10 gange for at få alle brugere oprettet i newsletter_subs
Jeg vil gerne have det sådan, at jeg blot skal køre den én gang, og så opretter den de 10 der mangler.
