Avatar billede starf Nybegynder
04. april 2013 - 23:46 Der er 7 kommentarer og
1 løsning

php 2 mysqli statements i et script.

Jeg forsøger at lave et script, der tjekker om et id findes, dette kalder jeg token. Hvis dette token findes, henter den en række data fra tabellen, og sammensætter en fil lokation, som jeg bruger php readfile for at lade brugeren downloade denne fil. Alt dette fungere fint, når streamingen er startet, så forsøger jeg at opdatere min sql endnu engang, med et hit i min download tæller, af en eller anden grund, bliver dette ikke kørt. Lige meget hvor jeg forsøger at placere min update del. Sætter jeg min update del, i sin egen php fil, og eksekvere den, fungere den fint nok. Nogle der kan fortælde mig hvad jeg gør galt?

jeg har prøvet at lægge de 2 mysqli dele lige efter hinanden, med samme resultat... Jeg får heller ingen fejl.

http://pastebin.com/yVjABTq0
Avatar billede scootergrisen Nybegynder
05. april 2013 - 00:08 #1
Hvis du bruger readfile() så blive PHP koden vel ved med at være der indtil filen er hentet.

Så hvis du har noget kode lige efter så bliver det vel ikke udført før efter filen er hentet.

Også er der chance for timeout hvis det tager lang tid at hente.
Det er vist ikke optimalt at bruge readfile til at downloade store filer.

Prøv og fjern din readfile() del og se om det så virker fint.
Avatar billede starf Nybegynder
05. april 2013 - 00:12 #2
tak for forklaringen, desværre opdatere den heller ikke hvis jeg fjerner alt readfile koden.

Hvis jeg flytter update statement op så det kommer før den if der køre readfile, så virker det heller ikke.
Avatar billede arne_v Ekspert
05. april 2013 - 01:12 #3
Foerst laver du nogle (debug) echo og bagefter bruger du header.

Det kan vist aldrig virke.
Avatar billede scootergrisen Nybegynder
05. april 2013 - 02:31 #4
Kunne selvfølgelig også være fordi du stopper PHP scriptet med  exit; lige før din UPDATE :D
Avatar billede starf Nybegynder
05. april 2013 - 08:25 #5
arne> hvis jeg fjerner echo, så får jeg det samme?

scootergrisen> Hvor gør jeg det? jeg kan ikke lige se det?
Avatar billede starf Nybegynder
05. april 2013 - 09:58 #6
update før select, så virker det.
Avatar billede scootergrisen Nybegynder
05. april 2013 - 14:10 #7
Det er ikke fordi update nødvendigvis skal være før select.
Det er fordi "exit;" stopper PHP så kode der kommer efter exit; ikke udføres.

Hvis du for eksempel skrev : echo "Filen er færdig med at downloade."; lige efter exit; så ville det heller ikke blive vist.

Hvis du ikke kan se exit; i din kode så søg efter det.
Avatar billede starf Nybegynder
05. april 2013 - 22:56 #8
de 2 exits jeg kan se, ligger begge efter update delen. den ene ligger hvis der er en mysql error, og den anden ligger efter readfile.

tager jeg min update og ligger før min select så virker det fint, sætter jeg min update efter select, så har den ingen effekt. virker for mig som om man ikke kan køre en update efter en select?
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
Kurser inden for grundlæggende programmering

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