function_library.php: function get_language($value) { open_sql() // Data fra DB hentes close_sql() return $data_fra_db }
sql_connection.php: function open_sql() { // Åben connection til DB }
function close_sql() { // Luk connection til DB }
Den nye struktur kan jeg ikke få til at virke. Når underside.php henter sprog (via funktionen i function_library.php), meldes der fejl: Can't connect to local MySQL server through socket
Laver jeg en open_sql() i underside.php FØR jeg henter sproget, virker det som det skal. Det vil dog kræve mange ændringer i den opbygning jeg ellers har, så det er jeg ikke videre interesseret i.
Er der nogen der kan fortælle mig hvad der går galt? Jeg synes det ligner noget include/require der gør at min nye opbygning fejler.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Som jeg forstaar dig, naar du kalder funktionen open_sql() saa aabnes databasen. Er det korrekt? Jeg synes ikke det er saa underligt at systemet ikke kan udfoere 'include("underside.php")' naar du kalder den foer du kalder 'open_sql()' Og giver det et problem at kalde 'open_sql()' foer du kalder 'include("underside.ph")'
Synes godt om
Slettet bruger
14. november 2010 - 20:25#4
Hm, tror ikke jeg har forklaret mig rigtig så.
I den gamle opbygning, afvikles de forskellige linjer noget ala dette:
Index.php include("mainpage.php"); session_start() include("function_library.php"); include("sql_connection.php"); get_language("dk") (sprog til index.php hentes); open_sql(); //Data fra DB hentes close_sql(); return $data_fra_db; open_sql; //Data fra DB hentes close sql; echo $content
I den nye struktur gøres således: Index.php include("mainpage.php"); session_start() include("function_library.php"); include("sql_connection.php"); get_language("dk"); (sprog til index.php hentes) open_sql(); //Data fra DB hentes close_sql(); return $data_fra_db; include("underside.php"); get_language("dk"); (sprog til underside.php hentes) open_sql(); //Data fra DB hentes close_sql(); return $data_fra_db; echo $content open_sql; //Data fra DB hentes close sql; echo $content
Synes godt om
Slettet bruger
14. november 2010 - 20:40#5
Jeg prøver lige igen med lidt flere indrykninger:
[code] Index.php include("mainpage.php"); session_start() include("function_library.php"); include("sql_connection.php"); get_language("dk") (sprog til index.php hentes); open_sql(); //Data fra DB hentes close_sql(); return $data_fra_db; open_sql; //Data fra DB hentes close sql; echo $content [/code]
Den nye opbygning:
[code] Index.php include("mainpage.php"); session_start() include("function_library.php"); include("sql_connection.php"); get_language("dk"); (sprog til index.php hentes) open_sql(); //Data fra DB hentes close_sql(); return $data_fra_db; include("underside.php"); get_language("dk"); (sprog til underside.php hentes) open_sql(); //Data fra DB hentes close_sql(); return $data_fra_db; echo $content open_sql; //Data fra DB hentes close sql; echo $content
Du tror du ikke har forklaret dit tydeligt. Det kan gerne vaere. Det jeg har forstaaet at problemet der dette: "Når underside.php henter sprog (via funktionen i function_library.php), meldes der fejl: Can't connect to local MySQL server through socket". Har jeg forstaaet korrekt at det er problemet?
Hvis ja, saa tror jeg du har forklaret dig tydeligt, men maaske er det mig der ikke har forklaret mit indlaeg tydeligt. Jeg observerer at sql forbindelsen IKKE ER AABEN naar du kalder 'underside.php' og at det er en logisk forklaring paa fejlmeldingen! I den kode du viser i dit oprindelige spoergsmaal er sql forbindelsen endnu ikke aaben naar du kalder 'include("underside.php")' I den kode du viser i #5 aabner du foerst sql forbindelsen, men saa lukker du den igen inden du kalder du 'underside.php'.
Venligst fortael mig (1) om det er tydeligt hvad jeg siger, (2) om det er mig der ser syner og sql forbindelsen er aaben paa rette tid (i saafald vis mig hvordan), (3) hvad problemet ville vaere med at soerge for at 'open_sql() kaldes foer 'include("underside.php")'.
Synes godt om
Slettet bruger
15. november 2010 - 08:18#7
Jeg forstår godt hvad du siger, men det er ikke korrekt.
Som du kan se ovenfor bruges open_sql() i funktionen der hentes sprog.
I det nuværende setup er det filen (index.php) der inkluderer både funktion og sql-funktion, der kalder sprog-funktionen.
I det nye setup kommer der et led mere imellem. Index.php inkluderer funktion og sql-funktion, for herefter at inkludere underside.php, der kalder funktionen.
Min mistanke er at det er den ekstra inkluderet side der ligger imellem, der giver problemerne.
Mit problem med at sætte open_sql ind, er at jeg har en masse andre sider der også bruger funktionerne, og det vil kræve ændringer i alle undersider, såfremt jeg fjerner open_sql fra sprog-funktionen, hvilket jeg ikke ønsker.
Jeg vil gerne finde ud af hvad det er der gør at det ikke virker, ikke bare for at få mit problem løst, men også for at lære mere omkring hvad der skaber problemet.
Jeg var lidt haengt op idag - jeg fik kikket paa dit sidste indlaeg men ikke reageret. Jeg godt se nu fra #5 at du i undersiden kalder open_sql() foer du henter data. Men jeg er lidt tabt med hensyn til hvad problemet er.
Siger du at det virker som vist i #5 (du kalder open_sql() i undersiden foer du henter data) men at du ville foretraekke kalde open_sql() i hovedfilen foer du kalder include(underside) hvilket uheldigvis ikke virker?
Eller siger du modsat at det virker hvis du i hovedfilen kalder open_sql() foer du kalder include(underside) men at du vil foretraekke at aabne sql i undersiden men det virker ikke?
Og hvad siger du saa er ulempen ved den maade de virker paa?
Synes godt om
Slettet bruger
15. november 2010 - 20:06#9
Problemet var at jeg fik en fejl når jeg ændrede på opbygningen af mine sider.
Jeg har rodet med det her til aften, og fundet frem til at det var nogle nestede funktioner, der ikke havde adgang til databasen.
Efter de blev rettet til, virkede alt som forventet.
Læg et svar og halvdelen af pointene er dine for din deltagelse i tråden.
Jamen det var jo det jeg lurede paa, at open_sql() ikke var aaben paa de rette tidspunkter. Men til lykke med at det er loest. Her er svar fra mig.
Synes godt om
Slettet bruger
15. november 2010 - 20:30#11
Jeg havde selv gættet på at det var brugen af variabler på tværs af de inkluderede sider der ikke fungerede som forventet.
Tak for input.
Synes godt om
Ny brugerNybegynder
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.