Functions

Tags:    php

Hej udviklere

Jeg har lavet en side page.php, hvor jeg kalder alle mine sider frem fra MySQL. Efter hver side er der et rediger & slet link.
Ved tryk på en af dem opdatere siden, og har f.eks. værdien staus=edit&id=1 eller status=delete&id=1.

Her er den ene af mine funktioner:
Fold kodeboks ind/udKode 


Når jeg kommer ind på den side skriver den ganske rigtigt at siden er slettet. Men når jeg tjekker min page.php, så findes siden staidg.

Hvad er det jeg har gjort forkert? - Har også et problem med min edit function. Men den tar vi bagefter :)





10 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Det er bare skide dejligt at du gider at implementere tidligere forslag før du poster en kodesnip. Eller vent, det glemte du vist...

I bund og grund er metoder og funktioner bare en ramme for x-antal linjer kode, så du kan kalde de samme linjer kode flere gange uden at skulle skrive dem.
Længere er den skam ikke.

Fold kodeboks ind/udKode 




$id = $_GET['id']. Det er det du mangler i din metode.

Slå register_globals fra og lær at arbejde med det. Det er så'n fremtiden for PHP alligevel kommer til at se ud. :)



Indlæg senest redigeret d. 24.02.2009 20:38 af Bruger #10216
Skal jeg ligge den INDE i function?




Fold kodeboks ind/udKode 


Har ryddet lidt op.

Antag at du kalder deletepage() 10 gange.

Så vil du have inkluderet config.php 10 gange og åbnet 10 forbindelser til samme database, før siden er afviklet.

Det er overkill!



Indlæg senest redigeret d. 24.02.2009 20:42 af Bruger #10216
Okay.. Kan godt se jeg måske er hoppet ud i functions lidt for hurtigt.. Forstod ikke rigtig alt det der.. Men nu fungerer det da i det mindste :P Jeg tager dine råd til mig og får ryttet op i det hele når jeg er færdig :D

Så prøver vi min edit function. Sikkert ligeså buggy, hvis ikke mere :/

Fold kodeboks ind/udKode 

Efter klik på opdater sker der intet..



Indlæg senest redigeret d. 24.02.2009 20:46 af Bruger #11361
Jeg sad lige og tyggede lidt på det du skrev til mig.. Faktisk er det enste jeg ikke lige forstår: deletepage((int) $_GET['id']);

Men jeg forsøger lige...

Når jeg har mit link der hedder blabla.php?status=edit

så henter jeg den via noget if sætning..
if($stauts == edit) {
deletepage((int) $_GET['id']);
} else { gør noget andet... }

"(int) $_GET['id']" betyder at min id er et heltal. Og ved at skrive $_GET['id'] på den måde. Så bliver det inkluderet i min function automatisk..
Lyder det rigtigt? :P



Indlæg senest redigeret d. 24.02.2009 20:52 af Bruger #11361
"$id = (int) $_GET['id']" betyder at $id bliver typecasted til at indeholde en integer baseret på værdien fra $_GET['id']. Altså hvis man i URL indtaster ?id=123asbs, vil $id = 123.

Ved at sende $_GET['id'] ned via deletepage($_GET['id']), da vil du kunne hente værdien fra $_GET via $id grundet at metoden har en påkrævet parameter defineret ved:
Fold kodeboks ind/udKode 


Men da det dækker over grundlæggende viden i programmering/udvikling er alt sammen noget jeg synes du skal læse videre om på:
http://dk2.php.net/manual/en/language.functions.php




Det er bare skide dejligt at du gider at implementere tidligere forslag før du poster en kodesnip. Eller vent, det glemte du vist...


Jeg glemte det, ja. Men rettede fejlen hurtigt derefter.. Undskyld..

Jeg har tilføjet dine ændringer. Men jeg har stadig problemer med at forbinde til databasen, åbenbart. For selvom jeg ændre på en titel og trykker opdater, så sker der intet :(



Debug, debug, debug...

Debug dine metoder og se hvor langt du når i afviklingen.

Udskriv påkrævet værdier, SQL, etc. ved de betingende sætninger og ved steder hvor du kunne have tiltro til at der sker en fejl.



Okay. Det gør jeg.
Tak for hjælpen :D



t