Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z sortowaniem
Bojakki
post
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


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]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
The Night Shadow
post
Post #2





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


id='".$bb_row[3]."'

Dodajesz ". coś ."


--- Dodane ---
Juz jedno ostrzezenie dostales, chyba nie chcesz wieceje
~SongoQ


Ten post edytował SongoQ 25.02.2006, 22:01:36
Go to the top of the page
+Quote Post
SongoQ
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


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.
Go to the top of the page
+Quote Post
Bojakki
post
Post #4





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


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?
Go to the top of the page
+Quote Post
SongoQ
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


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
Go to the top of the page
+Quote Post
Bojakki
post
Post #6





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


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. ?>

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Bojakki 25.02.2006, 22:32:18
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 10:11