Avatar billede hewa Nybegynder
07. januar 2007 - 20:30 Der er 24 kommentarer og
1 løsning

Hvem er skarp til variabler?

Dette dur:
echo $row[id]; - echo $row['id']; - echo "$row[id]";

Dette gør ikke:
echo "$row['id']";

Dette dur:
mysql_query("DELETE FROM links WHERE id='".$_GET['slet']."'");

Dette gør ikke:
mysql_query("DELETE FROM links WHERE id=$_GET['slet']");

Hvordan kan man enkelt ridse op, hvordan disse variabler bør/skal skrives?
Avatar billede erikjacobsen Ekspert
07. januar 2007 - 20:33 #1
mysql_query("DELETE FROM links WHERE id={$_GET['slet']}");
Avatar billede shooka Nybegynder
07. januar 2007 - 20:40 #3
Det første skal skrives:

echo $row['id']." - ".$row['id']." - ".$row['id'];
Avatar billede hewa Nybegynder
07. januar 2007 - 20:41 #4
Jeg er desværre ikke helt så god til engelsk, derfor ville jeg gerne have et svar på dansk :)
Avatar billede erikjacobsen Ekspert
07. januar 2007 - 20:47 #5
Jeg kender ikke til sider på dansk, der omtaler det. Men du har set hvordan man gøre det, og ellers har du en masse andre muligheder, der dur.
Avatar billede hewa Nybegynder
07. januar 2007 - 20:58 #6
Men jeg har ikke fået svar på, "Hvordan kan man enkelt ridse op, hvordan disse variabler bør/skal skrives?" - det var jo tanken med indlægget :)
Avatar billede shooka Nybegynder
07. januar 2007 - 21:00 #7
Det har noget med " og ' at gøre... De overskriver hinanden, og for at fortælle at variablerne indeholder ' eller ", så afslutter man den forudbestemte tekst med

echo "Hej".$row['id'];


Jeg har selv fundet frem til det... Jeg er ikke sikker på det er sådan, men det lyder ikke forkert :)
Avatar billede michael_stim Ekspert
07. januar 2007 - 21:01 #8
Først bør du skille PHP og HTML ad. Dette gøres som shooka viser:

echo "Her er HTML " . Og her PHP. "<!--Igen html--><br>";
Altså med .
Ligeledes når der skal skrives flere variabler på samme linie:

echo $var1.$var2;

Og når du skriver arrayvariabler skal du huske ' eller ":
$_GET['id']
Avatar billede erikjacobsen Ekspert
07. januar 2007 - 21:01 #9
Dem med 'id' er rigtige. ;)
Avatar billede shooka Nybegynder
07. januar 2007 - 21:02 #10
Hvis du f.eks. har en variabel, som hedder $hej, så kan du godt skrive sådan: echo "$hej";

Men det optimale vil selvfølgelig være

echo $hej;
Avatar billede hewa Nybegynder
07. januar 2007 - 21:03 #11
Men hvis dem med 'id' er rigtige, hvor dur
echo "$row['id']";
så ikke?
Avatar billede erikjacobsen Ekspert
07. januar 2007 - 21:05 #12
Der skal du se de to første indlæg.
Avatar billede shooka Nybegynder
07. januar 2007 - 21:05 #13
Fordi, hvis du skriver det ind i echo ""; Så tror PHP det er tekst, og ikke en dynamisk variabel.
Avatar billede michael_stim Ekspert
07. januar 2007 - 21:06 #14
PHP ved ikke hvornår den skal starte eller slutte hvis man bruger " eller ' til både variabler og tekstudskrift.

Man kan også backslashe hvis man vil bruge samma slags 'fnutter'.

echo "<input type=\"tekst\" name=\"huttelihut\" value=\"".$var1."\">";
Avatar billede shooka Nybegynder
07. januar 2007 - 21:07 #15
Det ville jo ikke være smart, hvis du ikke kunne skrive $row['id'] som tekst, hvis du nu havde brug for det ;)
Avatar billede shooka Nybegynder
07. januar 2007 - 21:07 #16
Det er korrekt Michael ;)
Avatar billede hewa Nybegynder
07. januar 2007 - 21:26 #17
Så det er rigtig forstået, at hvis jeg skriver det direkte med en echo er det:
echo $row['id'];
Op mod en echo med punktum:
echo $row['id'] . "Her er en tekst";
Og skriver jeg det i en echo, insert, delete osv., bruger jeg klammerne, f.eks.:
echo "{$row['id']}";
Jaja, jeg skal sgu nok lære det :)
Avatar billede shooka Nybegynder
07. januar 2007 - 21:33 #18
Lige nøjagtigt, men du behøver altså ikke klammer i mysql.

Der kan du også bruge id = '".$_GET['slet']."'

Gør det måske lidt lettere at huske :)
Avatar billede hewa Nybegynder
07. januar 2007 - 21:40 #19
Jeg tænkte bare, det var nemmere at huske og lave, hvis det var:
id = {$_GET['slet']}
fremfor:
id = '".$_GET['slet']."'
:)
Og har jeg forstået det ret, er det også muligt, ikke?

Smid at svar alle tre, så får I point (jeg er ret ny i det her, så det er vel muligt alle tre får?)
Avatar billede shooka Nybegynder
07. januar 2007 - 21:44 #20
Jeg kendte faktisk ikke måden med klammerne. I følge det Erik skriver i første indlæg, så er klammerne også en mulig måde :)

Det vil jo så sige, at du kan gøre sådan:

echo "Hej: {$row['id']}";
Avatar billede hewa Nybegynder
07. januar 2007 - 21:47 #21
Dett med klammerne er vist mest mig, nemt og enkelt :)
Husk dit svar shooka, du er den, der har været mest aktiv :)
... og hvis I ønsker flere point, har jeg et stadig ubesvaret spørgsmål under "Slet i tabel med link", haha :)
Avatar billede shooka Nybegynder
07. januar 2007 - 21:52 #22
Her kommer et svar... Og held og lykke med klammerne...
Avatar billede shooka Nybegynder
07. januar 2007 - 21:55 #23
Nu var det altså ikke for at hugge alle pointene. Hvis I andre gerne vil have jeres del, så opretter jeg et spørgsmål :)
Avatar billede hewa Nybegynder
07. januar 2007 - 22:05 #24
Jamen de giver også bare et svar, så er der også point til dem (jeg går som sagt ud fra, det er muligt..)
Avatar billede shooka Nybegynder
07. januar 2007 - 22:19 #25
Det er det desværre ikke...


Jeg er kommet med en løsning til dit andet spørgsmål :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging