Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> polecenie SQL krócej
Najki
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


Czy można takie (przykład) polecenie zapisać prościej/krócej ?
  1. <?
  2. $a = mysql_fetch_assoc(mysql_query('select * from `tabela` where `id`=1;'));
  3. $b = $a['pole'];
  4. $b++;
  5. $c = mysql_query('update `tabela` set `pole`=\"'.$b.'\" where `id`=1;');
  6. ?>


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. UPDATE `tabela` SET pole=pole+1 WHERE id=1


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rogrog
post
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


ogólnie jeśli zależy Ci n wydajności to zamiast * powinieneś podawać tylko te pola, które są Ci potrzebne...

a w tym przypadku możesz zrobić jedno zapytanie
  1. UPDATE `tabela` SET `pole` = `pole` + 1 WHERE `id`= 1


--------------------
Go to the top of the page
+Quote Post
Najki
post
Post #4





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


@nospor: dzięki
@rogrog: wiem, tak robię smile.gif


--------------------
Go to the top of the page
+Quote Post
kszychu
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(rogrog @ 2005-03-08 14:08:08)
ogólnie jeśli zależy Ci n wydajności to zamiast * powinieneś podawać tylko te pola, które są Ci potrzebne...[/SQL]

No patrz, a ja zawsze myślałem, że dla bazy danych nie ma znaczenia czy pobiera cały wiersz czy tylko wybrane kolumny...


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Darti
post
Post #6





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Cytat(kszychu @ 2005-03-08 14:31:47)
No patrz, a ja zawsze myślałem, że dla bazy danych nie ma znaczenia czy pobiera cały wiersz czy tylko wybrane kolumny...

Dla bazy - może i nie ma większego znaczenia ale później trzeba to przez php przemielić


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kszychu
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(Darti @ 2005-03-08 16:18:00)
Dla bazy - może i nie ma większego znaczenia ale później trzeba to przez php przemielić

Patrząc na Wasze wypowiedzi widzę, że jadnak ma. Rzućcie linkiem, bo sam jestem ciekaw jak to jest dokładnie i chętnie bym poczytał.

@Darti: o jakim mieleniu przez php mówisz?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Darti
post
Post #8





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Cytat(kszychu @ 2005-03-08 15:22:04)
@Darti: o jakim mieleniu przez php mówisz?

smile.gif
przecież dane z bazy później są interpretowane przez php, co zajmuje przeciez pamięć operacyjną serwera, bo co jak ktos przetrzymuje cos duzego w bazie? np obrazki? :
  1. CREATE TABLE `obrazki` (
  2. `id` INT( 5 ) NOT NULL ,
  3. `nazwa_obrazka` VARCHAR( 128 ) NOT NULL ,
  4. `obrazek` LONGBLOB NOT NULL
  5. -- zauwaz ze `obrazek` jest LONGBLOB!
  6. );

i teraz:
  1. <?php
  2.  
  3. $a = mysql_query('select * from `obrazki` LIMIT 1000')); //wybieram cale wiersze
  4. $b = mysql_query('select id, nazwa_obrazka from `obrazki` LIMIT 1000')); //a tutaj 2 kolumny
  5. // a pozniej przetwarzam te dane
  6.  
  7. ?>

i mówię o takim mieleniu właśnie (różnica między $a i $b)
Poza tym - serwer MySQL może być na drugim końcu świata (np tunelowany) - przecież nie będę wysyłał bez potrzeby danych?


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kszychu
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(Darti @ 2005-03-08 16:42:28)
i mówię o takim mieleniu właśnie (różnica między $a i $b)

Oj to uważaj co mówisz... Bo widzisz, jeśli chodzi o wielkość $a i $b, to będą one identyczne (no prawie...)! A dlaczego? Wyświetl je sobie to zobaczysz. cool.gif


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Darti
post
Post #10





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


fakt - masz racje. między $a i $b jest niewielka różnica bo to tylko oznaczenia źródeł(questionmark.gif) (ang. resources), ale później jest mysql_fetch_assoc() (na poczatku wątku tak jest) i wszystko wrzucane jest do tablic w php:
  1. <?php
  2. //START EDIT
  3. $a = mysql_query('select * from `obrazki` LIMIT 1000'); 
  4. $b = mysql_query('select id, nazwa_obrazka from `obrazki` LIMIT 1000'); 
  5. //END EDIT
  6. $a_fetched = mysql_fetch_assoc($a);
  7. $b_fetched = mysql_fetch_assoc($b);
  8.  
  9. ?>

Czy teraz jest różnica między $a_fetched i $b_fetched?

ps - wcześniej machnąłem się z nawiasami

Ten post edytował Darti 8.03.2005, 17:29:55


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
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 - 12:45