riefart Mester
01. april 2020 - 12:47 Der er 1 kommentar og
2 løsninger

Opdater en tabel med værdier fra en anden tabel.

Jeg har en tabel1 med bruger-oplysninger, og en tabel2 med opslag, som brugerne har lavet.
Nogle gange (og kun nogle gange) sker det, at et opslag oprettes i tabel2 uden eks postnummer for brugeren.
Jeg har brug for at finde de poster, hvor eks postnummer mangler og efterfølgende opdatere dem med postnummeret fra tabel1. I begge tabeller kan jeg bruge ’email’ som reference.
Første del er nem nok med:
if($stmt=$mysqli->prepare("SELECT `email` FROM `annoncer` WHERE `postnr`='0' "))
    {
    $stmt->execute();
    $stmt->bind_result($email);
    while($stmt->fetch())
        {
//her ville jeg gerne lave opdateringen af postnummer, de steder det mangler, men det lader sig ikke rigtigt gøre
        }
        $stmt->close();
        }

Hvordan kommer jeg videre med anden del af projektet: at opdatere den aktuelle post i tabel2"?
arne_v Ekspert
01. april 2020 - 14:51 #1
Jeg ville stærkt overveje at lave logikken i PHP med den SELECT og så en SELECT og en UPDATE per problem. Det må jo være en engangs ting, så performance er ligegyldig.

Men vil du bruge SQL, så måske:

UPDATE annoncer SET postnr = (SELECT MAX(postnr) FROM brugere WHERE brugere.email = announcer.email) WHERE postnr = 0

Du *SKAL* teste grundigt på test data inden dy fyrer den af på de rigtige data.
riefart Mester
01. april 2020 - 16:34 #2
Hvordan skal det se ud hvis jeg laver logikken i PHP?
Iøvrigt virker det perfekt med den UPDATE, du foreslår. Tommel op!
arne_v Ekspert
02. april 2020 - 01:43 #3
PHP logik ville være helt triviel:

SELECT email FROM annoncer WHERE postnr = 0
while {
    SELECT postnr FROM brugere WHERE email = ?
    UPDATE annoncer SET postnr = ? WHERE email = ?
}

Den er nemmere at teste med UPDATE udkommenteret og lidt debug print for at se hvad der sker.
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

Opret Preview

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





Computerworld
For to år siden nedsænkede Microsoft 864 servere i Nordsøen: Nu er datacenteret på land igen - se resultatet her
Microsoft har efter to år hævet sit undervands-datacenter op af Nordsøen. Her er de erfaringer, selskabet har gjort sig.
CIO
Torben Fabrin og Arla måtte på få dage omstille hele deres produktion da coronaen ramte
Da coronaen ramte verden måtte mejerigiganten Arla på få dage omstille sin produktion. Samtidig voksede salget massivt til supermarkeder mens institutioner og restauranter gik næsten i stå. Hør hvordan Arla kom gennem krisen ved blandt andet være klar med realtime analytics.
Job & Karriere
På jagt efter et it-job i Jylland? Her er 10 stillinger fra Aabenraa til Aalborg, der ledige netop nu
Vi har fundet en række spændende stillinger til dig, der jagter et it-job. Her kan du vælge og vrage mellem ledige stillinger lige fra Aabenraa til Aalborg.
White paper
Stor rapport kortægger: Sådan er kundernes forventninger til en moderne kundeservice
Kender du din målgruppes foretrukne kanal til annoncering, salg og kundeservice? Ved du om salg og kundeservice arbejder godt nok sammen? Og i hvilken grad lever du op til kundernes forventninger? De spørgsmål kan du finde svar på i dette whitepaper fra Zendesk, som via knapt 5.000 interviews og spørgeskemaer har kortlagt både kunder og customer experience-folks erfaring og forventninger til en god kundeoplevelse. Whitepaperet er derfor en oplagt og overskuelig målestok, for dig der arbejder med customer experience og vil benchmarke sin egen indsagt – eller til dig, der skal til at etablere en moderne kundeoplevelse og vil prioritere indsatsen korrekt.