Forbedre koden på siden

Tags:    php mysqli

Hej

Jeg vil høre om jeg måske kan være med til at forbedre min hjemmeside med hvor hurtig den skal være hvis jeg tilpasser noget kode altså sæt dem i array,

Fold kodeboks ind/udPHP kode 




Jeg læse et sted på nette det var f.eks hvis jeg skal bruge alarm flere 1 gange i min kode så er det godt at sæt det op i array, så der efter sådan hente koden ned.

f.eks sådan her

Fold kodeboks ind/udPHP kode 


(Ved godt der er fejl i koden / Kan ikke lige se hvad problemet er lige pt :( ), men det måske en måde at gøre det på eller hvordan vil du gøre det?

Nu er det sådan på den hjemmesider jeg arbejder på er der meget at den samme kode igen igen igen men for hver gang bliver der bare tilføj noget nyt eller ligne.



8 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Det der er med dobbelt quotes og single quotes i PHP er, at alt inde i dobbelt quotes bliver tjekket for om det indeholder variabler.
f.eks.

Fold kodeboks ind/udPHP kode 

Giver
Fold kodeboks ind/udKode 


Med single quotes fortæller man PHP at der ikke skal ledes efter variabler i stregen og at den skal udskrive stregen som den står.
Fold kodeboks ind/udPHP kode 

Giver
Fold kodeboks ind/udKode 


Hvis du vil vise variabler skal de skrives uden for single quoutes'ene som en tilføjelse.

Fold kodeboks ind/udPHP kode 

Giver
Fold kodeboks ind/udKode 


Derfor skal din sql se nogenlunde sådan her ud
Fold kodeboks ind/udPHP kode 


Derudover mangler der vist et ; efter $select = array("SELECT `melding`, `tidspunkt` FROM `alarm`")
Og du behøver ikke at bruge `` uden om de felter du vil hente fra databasen.
Det kan bare skrives som "SELECT melding, tidspunkt FROM alarm".



Indlæg senest redigeret d. 10.06.2013 19:39 af Bruger #13363
Nu har jeg ikke været i PHP verdenen for nylig men tror det er fordi du bruger single-quoutes (') her:
if ($stmt = $this->mysqli->prepare('$select[0] ORDER BY `alarm`.`id` DESC LIMIT 10')) {

Hvis du gerne vil have at PHP forstår at hente værdien fra en variabel ind i en streng f.eks. $select skal du bruge dobbelt quotes:
if ($stmt = $this->mysqli->prepare("$select[0] ORDER BY `alarm`.`id` DESC LIMIT 10")) {



Du skal stadig have [0] på for at trække strengen ud af din array.



Nu har jeg ikke været i PHP verdenen for nylig men tror det er fordi du bruger single-quoutes (') her:
if ($stmt = $this->mysqli->prepare('$select[0] ORDER BY `alarm`.`id` DESC LIMIT 10')) {

Hvis du gerne vil have at PHP forstår at hente værdien fra en variabel ind i en streng f.eks. $select skal du bruge dobbelt quotes:
if ($stmt = $this->mysqli->prepare("$select[0] ORDER BY `alarm`.`id` DESC LIMIT 10")) {


Sådan her:

Fold kodeboks ind/udPHP kode 


Den viser bare ikke den rigtig farve :(



det er lige meget, du skal skrive det med " (dobbelt) hvis du vil have PHP til, at forstå det som en variabel



det er lige meget, du skal skrive det med " (dobbelt) hvis du vil have PHP til, at forstå det som en variabel


Forstår ikke lige helt hvad du mener med det :(



Du kunne lave det til en try-catch exception - ville gerne give et eksempel men sidder i toget.



Det der er med dobbelt quotes og single quotes i PHP er, at alt inde i dobbelt quotes bliver tjekket for om det indeholder variabler.
f.eks.

Fold kodeboks ind/udPHP kode 

Giver
Fold kodeboks ind/udKode 


Med single quotes fortæller man PHP at der ikke skal ledes efter variabler i stregen og at den skal udskrive stregen som den står.
Fold kodeboks ind/udPHP kode 

Giver
Fold kodeboks ind/udKode 


Hvis du vil vise variabler skal de skrives uden for single quoutes'ene som en tilføjelse.

Fold kodeboks ind/udPHP kode 

Giver
Fold kodeboks ind/udKode 


Derfor skal din sql se nogenlunde sådan her ud
Fold kodeboks ind/udPHP kode 


Derudover mangler der vist et ; efter $select = array("SELECT `melding`, `tidspunkt` FROM `alarm`")
Og du behøver ikke at bruge `` uden om de felter du vil hente fra databasen.
Det kan bare skrives som "SELECT melding, tidspunkt FROM alarm".


Åååh lækkert, nu virker det!. Jeg skulle bare tilføj og ligne nogle ting :) men tak for hjælp det virker fint nu!!



Indlæg senest redigeret d. 11.06.2013 15:16 af Bruger #17136
t