Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapytanie sql
Ka-lolek
post
Post #1





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 26.01.2005

Ostrzeżenie: (0%)
-----


Witam,
dlaczego takie zapytanie jest wykonywane:

  1. $sql = "SELECT *
  2. FROM MASTER_PRODUCTS WHERE ID = '$_POST[sel_record]'";
  3. $sql_result = mysql_query($sql, $conn) OR die(mysql_error());


a takie juz nie
  1. $sql = 'SELECT *
  2. FROM MASTER_PRODUCTS WHERE ID = "$_POST[sel_record]"';
  3. $sql_result = mysql_query($sql, $conn) OR die(mysql_error());


(roznia sie one " i ' . Nigdy nie wiem kiedu uzywac apostrof, a kiedy cudzyslow... moze mi ktos to wytlumaczyc?tongue.gif
Prosze o odpowiedz
Pozdrawiam

Ten post edytował Ka-lolek 30.07.2005, 12:37:14
Go to the top of the page
+Quote Post
aleksander
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


bo ID jest integerem a w drugim przykładzie podajesz go jako string?

ehh, także dlatego, że string zapisywany pomiędzy apostrofami nie jest parsowany przez php i $_POST[sel_record] nie jest zamieniany na jego wartośc.

BTW $_POST['sel_record'] lub $_POST["sel_record"] a nie $_POST[sel_record]
Go to the top of the page
+Quote Post
Jabol
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


Cytat(aleksander @ 2005-07-30 14:27:44)
BTW $_POST['sel_record'] lub $_POST["sel_record"] a nie $_POST[sel_record]

tak po prawdzie to: {$_POST['sel_record']}

a co do problemu to:
tekst pomiędzy " " jest parsowany przez php. php wyszukuje w nim znaki specjalne i podstawia odpowiednie wartości (w tym np. \n, \t oraz zmienne).
tekst pomiędzy ' ' nie jest parsowany i jedyna kombinacja, która jest podmieniana to \' na '.
Go to the top of the page
+Quote Post
Ka-lolek
post
Post #4





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 26.01.2005

Ostrzeżenie: (0%)
-----


smile.gif wybaczcie , ze spytam... co to jest integer i string;]
Go to the top of the page
+Quote Post
strife
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(Ka-lolek @ 2005-07-30 20:25:55)
smile.gif wybaczcie , ze spytam... co to jest integer i string;]

grrr....

http://pl.php.net/manual/pl/language.types.php

tongue.gif


--------------------
Go to the top of the page
+Quote Post
Ka-lolek
post
Post #6





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 26.01.2005

Ostrzeżenie: (0%)
-----


Cytat(aleksander @ 2005-07-30 12:27:44)
bo ID jest integerem a w drugim przykładzie podajesz go jako string?

po czym to wnioskujesz? bo nie wiem..


i jeszcze jedno:
Jabol napisal:
tekst pomiędzy ' ' nie jest parsowany i jedyna kombinacja, która jest podmieniana to \' na '.


no to wlasnie w pierwszym przypadku jest '$_POST[sel_record]' czyli nie powinno byc zamienione na wartosc, a w rzeczywistosci dziala...
w sumie, to w obydwuch przypadkach zmienna $_POST[sel_record] jest pomiedzy apostrofami:P raz tylko sa one bezposrednio przy niej, a w drugim przypadku troche dalej:P takze nadal nie wiem dlaczego w pierwszym przypadku dzialalo... mozecie mi to w jakis przystepniejszy sposob wytlumaczyc zasade kiedy nalezy pisac " a kiedy '

Ten post edytował Ka-lolek 31.07.2005, 11:57:27
Go to the top of the page
+Quote Post
aleksander
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


napisze przykładami bo trudno mi tłumaczyc smile.gif
  1. <?php
  2.  
  3. $var = 'BLAH';
  4. echo &#092;"to jest $var\"; // wyswietli: to jest BLAH
  5. echo 'to jest $var'; // wyswietli: to jest $var
  6. echo 'to jest ' . $var; // wyswietli: to jest BLAH
  7. echo &#092;"to jest $var\"; // wyswietli: to jest $var
  8. ?>


PS1: Jeżeli jeszcze raz mi napiszesz indeks tablicy asocjacyjnej bez cudzysłowia lub apostrofu, zrobie Ci wjazd na chate i połamie ręce. Jasne?biggrin.gif

PS2: Jeżeli nie wiesz o co chodzi w PS1 czytaj: http://www.php.pl/artykuly/dla_poczatkujac...ch_programistow
Go to the top of the page
+Quote Post
Jabol
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


@aleksander zapomniałeś o najważniejszej i jedynej poprawnej metodzie
  1. <?php
  2. $arr=array(&#092;"a\", \"b\");
  3. $str=&#092;"ab\";
  4. print &#092;"$arr: array(2) { [0] => {$arr[0]}, [1] => {$arr[1]}\";
  5. print &#092;"$str: string(2) => {$str}\";
  6. ?>
WSZYSTKIE zmienne należy zamykać w nawiasy klamrowe. I od razu kończy się problem ze zmiennymi indeksowanymi.
Go to the top of the page
+Quote Post
Ka-lolek
post
Post #9





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 26.01.2005

Ostrzeżenie: (0%)
-----


@aleksander ad P.S.1 postaram się zapamiętać:P byłoby mi łatwiej gdyby nie działała taka forma:] , a że skrypt działa jeżęli jest wpisane cos takiego: $_POST[sel_record], to po co wpisywac $_POST['sel_record']tongue.gif.

@Jabol - pierwszy raz sie z takim czyms spotykam... mozesz cos o tym napisac albo podac linka gdzie to jest opisane? ew. napisz nazwe pod jaka szukac tego zagadnienia w internecie/kursach:)


Pozdro
Go to the top of the page
+Quote Post
ikioloak
post
Post #10





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

Ostrzeżenie: (0%)
-----


Cytat(Ka-lolek @ 2005-07-31 16:41:58)
a że skrypt działa jeżęli jest wpisane cos takiego: $_POST[sel_record], to po co wpisywac $_POST['sel_record']tongue.gif.

http://pl.php.net/manual/pl/language.types.array.php i tam mniej wiecej na poczatku masz opisane co i jak powinno byc i dlaczego robisz zle.
Go to the top of the page
+Quote Post
Jabol
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


@Ka-lolekhttp://pl.php.net/manual/en/language.types.string.php

Ten post edytował Jabol 31.07.2005, 16:12:56
Go to the top of the page
+Quote Post
Ka-lolek
post
Post #12





Grupa: Zarejestrowani
Postów: 104
Pomógł: 0
Dołączył: 26.01.2005

Ostrzeżenie: (0%)
-----


  1. <?php
  2. // Won't work, use braces.  This results in a parse error.
  3. echo &#092;"A banana is $fruits['banana'].\";
  4. ?>


no to juz nie wiem jak to jest z tymi ' . czemu to niby ma nie dzialac?

edit
czy mozna przyjac tak, ze zamiast ' i " wkladam zmienne omiedzy {} tak jak napisal Jabol i reszte mam juz z glowy:>?

Ten post edytował Ka-lolek 31.07.2005, 19:03:04
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:22