Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: polecenie SQL krócej
Forum PHP.pl > Forum > PHP
Najki
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. ?>
nospor
  1. UPDATE `tabela` SET pole=pole+1 WHERE id=1
rogrog
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
Najki
@nospor: dzięki
@rogrog: wiem, tak robię smile.gif
kszychu
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...
Darti
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ć
kszychu
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?
Darti
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?
kszychu
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
Darti
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.