Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z sortowaniem
Forum PHP.pl > Forum > Bazy danych > MySQL
Bojakki
mam takie cos:

  1. <?php
  2. $bb_query = mysql_query("SELECT * FROM tabelax2 WHERE id=$_GET[id]") or die("Blad");;
  3. $bb_row=mysql_fetch_row($bb_query);
  4.  
  5. $query = mysql_query("SELECT * FROM tabelax WHERE id='$bb_row[3]' or id='$bb_row[2]'") or die("Blad");
  6. while($rowp=mysql_fetch_row($query))
  7. $record[] = $rowp;
  8.  
  9. echo '<b>'.$record[0][1].'</b><br />';
  10. echo '<b>'.$record[1][1].'</b><br />';
  11.  
  12. ?>


Chodzi o sortowanie. Chce by $record[0][1] byl dla id='$bb_row[3] a $record[1][1] dla id='$bb_row[2]'. Dokladnie w tej kolejnosci co sa wypisane w SELECTcie. Nie osiagne tego sortujac wg jakiekolwiek kolumny w tabeli, musi byc taka koleknosc jak w zapytaniu bo na ten czas dostaje kolejnosc wg id[/code][/php]
The Night Shadow
id='".$bb_row[3]."'

Dodajesz ". coś ."


--- Dodane ---
Juz jedno ostrzezenie dostales, chyba nie chcesz wieceje
~SongoQ
SongoQ
Przeciez to: id='$bb_row[3]' or id='$bb_row[2]' daje Ci rekordy i nie wiesz ktory jest z jakiego kryterium. Mozesz zrobic sobie np UNION i zwracac typ 0, 1 dla jakiego warunku to jest. W php wstawiasz wtedy jednego IF i wiesz z jakiego warunku pochodzi rekord.
Bojakki
Cytat(SongoQ @ 2006-02-25 21:00:14)
Przeciez to: id='$bb_row[3]' or id='$bb_row[2]' daje Ci rekordy i nie wiesz ktory jest z jakiego kryterium. Mozesz zrobic sobie np UNION i zwracac typ 0, 1 dla jakiego warunku to jest. W php wstawiasz wtedy jednego IF i wiesz z jakiego warunku pochodzi rekord.

Jak to wyglada w praktyce?
SongoQ
Tylko wydajnosc spadnie takiego zapytania.

  1. (SELECT pole1, pole2, 0 AS typ
  2. FROM tabelax
  3. WHERE id='xxx')
  4. UNION
  5. (SELECT pole1, pole2, 1 AS typ
  6. FROM tabelax
  7. WHERE id='xxx')


I dalej wyciagasz dane tak jak wczesniej i sprawdzasz pole typ
Bojakki
Wymyslilem cos bez komplikowania zapytania:)

  1. <?php
  2. if ($record[0][0]==$bb_row[2])
  3. echo'<b>'.$record[0][1].'</b><br />';
  4. else
  5. echo'<b>'.$record[1][1].'</b><br />';
  6.  
  7. if ($record[1][0]==$bb_row[3])
  8. echo '<b>'.$record[1][1].'</b><br />';
  9. else
  10. echo'<b>'.$record[0][1].'</b><br />';
  11. ?>

smile.gif
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.