Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] wyniki z zapytania/segregowanie
Forum PHP.pl > Forum > Przedszkole
timber
Witam,

Mam baze o nastepujacej strukturze

id | nazwa | kolor | wymiary
1|abc1|niebieski|20
2|abc2|czerwony|30
3|abc3|niebieski|20
4|abc4|czerwony|40

Chcialbym zeby rekordy byly automatycznie wyswitlane i segregowane w jednym zapytaniu wg. koloru

np.
1|abc1|niebieski|20
3|abc3|niebieski|20

2|abc2|czerwony|30
4|abc4|czerwony|40

wiem ze mozna to zrobic w prosty sposob przez operator WHERE = kolor zdeklarowany ale to nie rozwiazuje mi problemu bo: 1.musialbym zrobic tyle zapytan ile mialbym rekorow o rodzaju koloru, 2. jakbym dodal nowy rekord z nowym kolorem to by sie nie wyswietlal

prosze o wskazowki jak moj problem rozwiazac lub gdzie tego mialbym szukac.
pbnan
Na końcu zapytania:
  1. ORDER BY `kolor` ?

Zamiast pytajnika ('?') dajesz ASC lub DESC, które sortują rosnąco lub malejąco (nigdy nie pamiętam, które jak sortują, więc może napisałem na odwrót biggrin.gif Zawsze możesz przetestować ;]).
winksmiley.jpg
timber
dzieki za odp. ale nie o to mi chodzilo, zle zprecyzowalem pytanie
chodzi mi o "osobne", odzielenie wierszy z wynikami tak zebym mogl wstawic pomiedzy innymi kolorami wiersz ze od tego momentu zaczyna sie ten akurat kolor

kolor niebieski
niebieskie wyniki
...
...
kolor czerwony
...
...
kolor czarny
...
pbnan
No to to co napisałem + w PHP:
  1. <?php
  2. $last_color = '';
  3. while($row = mysql_fetch_assoc($result)) {
  4. if ($last_color != $row['kolor']) {
  5. $new = 1;
  6. }
  7. else $new=0;
  8.  
  9. if ($new==1) { echo 'kolor '.$row['kolor']; }
  10. }
  11. ?>
timber
to co podales to jest do zwyklego wyswietlania rekordow sortujac przez ORDER a mi chodzi o to zeby zrobic cos w rodzaju "tabelek" z wynikami do kazdego koloru osobno, tak zebym mogl nadac kazdej tytul itp.

jakas podpowiedz?? jak to zrobic
pbnan
Cytat(timber @ 5.04.2007, 13:11:57 ) *
to co podales to jest do zwyklego wyswietlania rekordow sortujac przez ORDER a mi chodzi o to zeby zrobic cos w rodzaju "tabelek" z wynikami do kazdego koloru osobno, tak zebym mogl nadac kazdej tytul itp.

jakas podpowiedz?? jak to zrobic

Ech, czytałeś mój kod? Umiesz myśleć? No to co za problem przerobić?
  1. <?php
  2. while($row = mysql_fetch_assoc($result)) {
  3. if ($last_color != $row['kolor']) {
  4. $new = 1;
  5. }
  6. else $new=0;
  7.  
  8. if ($new==1) { echo 'kolor '.$row['kolor']; }
  9. }
  10. ?>

Ostatni if wyświetla "kolor niebieski" (na przykład). Możesz to zmienić, żeby wyświetlał "</table><table>".
To jest naprawdę proste do zmiany, popróbuj ;-)
timber
koles dzieki za pomoc, ja to rozumiem tylko ze ja chce uzyskac inny rezultat jak ten ktory ty mi pokazujesz
chcialbym uzyskac taki efekt:


jest to mozliwe przez to co Ty mi napisales?? bo mi sie wydaje ze nie bardzo jezeli sie myle to wytlumacz mi to.
nospor
Cytat
ja to rozumiem tylko ze ja chce uzyskac inny rezultat jak ten ktory ty mi pokazujesz

i tu sie klania to co powiedziano wczesniej:
Cytat
Umiesz myśleć? No to co za problem przerobić?
No wysil sie troche. tamten kod wypisuje ci kolory, jaki problem bys wypisal nazwy?
  1. <?php
  2. $last_color = '';
  3. while($row = mysql_fetch_assoc($result)) {
  4. if ($last_color != $row['kolor']) {
  5. $new = 1;
  6. }
  7. else $new=0;
  8.  
  9. if ($new==1) { echo 'kolor '.$row['kolor'].'<br />'; }
  10. echo $row['nazwa'].'<br />';
  11. }
  12. ?>


jesli to nadal nie to co chcesz, to pokaz wynik jaki otrzymujesz z tego kodu
timber
to co wy mi dajecie:

kolor czerwony
abc5
kolor czerwony
abc4
kolor czerwony
abc2
kolor niebieski
abc3
kolor niebieski
abc1
kolor niebieski
abc6

a chce:

kolor czerwony
abc5
abc4
abc2
kolor niebieski
abc3
abc1
abc6
nospor
hehe, jest maly blad w kodzie pbana.
  1. <?php
  2. $last_color = '';
  3. while($row = mysql_fetch_assoc($result)) {
  4. if ($last_color != $row['kolor']) {
  5. $new = 1;
  6. }
  7. else $new=0;
  8. $last_color = $row['kolor'];
  9. if ($new==1) { echo 'kolor '.$row['kolor'].'<br />'; }
  10. echo $row['nazwa'].'<br />';
  11. }
  12. ?>

a teraz? smile.gif
pbnan
Heh, taki łatwy błąd, aż się idze powiesić ze wstydu biggrin.gif
  1. <?php
  2. $last_color = '';
  3. while($row = mysql_fetch_assoc($result)) {
  4. if ($last_color != $row['kolor']) {
  5. $last_color = $row['kolor'];
  6. $new = 1;
  7. }
  8. else $new=0;
  9.  
  10. if ($new==1) { echo 'kolor '.$row['kolor'].'<br />'; }
  11. echo $row['nazwa'].'<br />';
  12. }
  13. ?>

//ach, nospor byłeś o sekundę szybszy smile.gif
timber
teraz to dziala! Wielkie dzieki!
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.