Avatar billede yxos Nybegynder
04. februar 2007 - 14:07 Der er 3 kommentarer og
1 løsning

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.
Avatar billede yxos Nybegynder
04. februar 2007 - 14:09 #1
Glemte vist at sige, at alle tabeller har et prefix, angivet i $db_prefix. Derfor ser koden herover ud som den gør.
Avatar billede hmortensen Nybegynder
04. februar 2007 - 14:21 #2
Hvis alle brugere skal modtage dit nyhedsbrev, ville det så ikke være lettere at lave "send nyhedsbrev" funtionen om, så den henter mail adresserne fra bruger tabellen.
Avatar billede yxos Nybegynder
04. februar 2007 - 14:49 #3
Jo, umiddelbart. Det har du ret i.

Det er bare en kæmpe PHP-fil, som jeg slet ikke magter at give mig i kast med. Derfor beder jeg om hjælp til at lave denne sætning.
Avatar billede yxos Nybegynder
09. februar 2007 - 12:33 #4
lukker :-(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester