Skocz do zawartości

[MySQL] SELECT MIN/MAX


Arent

Rekomendowane odpowiedzi

Mam drobny problem z wyświetleniem minimalnej i maksymalnej wartości z tabeli, jest tak:

 

$min = "SELECT MIN(price) FROM $tablename";

$max = "SELECT MAX(price) FROM $tablename";

 

 

a następnie próbowałem wyświetlić tak:

 

echo '<xml caption="$min" "$max"';

 

lub tak

 

echo '<xml caption="{$min}" "{$max}"';

 

ale php zamias interpretować zmienne tak jak powinien, wyświetla mi $min $max

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem, czy nie robisz źle co do zapytania. Chyba powinno być tak...

 

$link = mysql_query("SELECT MIN(price) FROM $tablename");

$row = mysql_fetch_array($link);

$min = $row['price'];

 

A co do drugiego: echo '<xml caption="'.$min.$max.'">';

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Nie działa dlatego, ponieważ użyłeś apostrofów do określenia ciągu znaków. Apostrofy tym się różnią od cudzysłowia, że żadne wewnątrz ciągu żadne znaki specjalne czy zmienne nie są przetwarzane. Apostrofy służą do określania czystego ciągu znaków. Dlatego też prawidłowy zapis jest taki:

 

echo '<xml caption="'.$min.'" "'.$max.'"';

lub

echo "<xml caption='".$min."' '".$max."'";

lub

echo "<xml caption='$min' '$max'";

lub

echo "<xml caption=\"$min\" \"$max\"";

lub

echo "<xml caption=\"".$min."\" \"".$max."\"";

 

Jaką metodę wybrać? Zależy od gustu, ale ja się trzymam zasady, że nigdy nie podstawiam zmiennych wprost do ciągu znaków, tylko zawsze z niego wychodzę, dlatego też używam apostrofów (kwestia bezpieczeństwa, uniknięcia pomyłek itd.). Cudzysłów używam tylko i wyłącznie wtedy, kiedy zachodzi konieczność użycia znaków specjalnych typu nowa linia (\n) itp., ale powtarzam, gdy trzeba podstawić zmienną, to zawsze wychodzę z ciągu.

 

Dodatkowo zaletą tego jest to, że w rozbudowanych edytorach php masz od razu widoczne wszystkie odwołania do zmiennej, a jak podstawisz zmienną do "" to Ci edytor tego nie wychwyci.

Odnośnik do komentarza
Udostępnij na innych stronach

zrobiłem tak

 

$link = mysql_query("SELECT MIN(price) FROM $tablename");

$row = mysql_fetch_array($link);

$min = $row['price'];

 

$link2 = mysql_query("SELECT MAX(price) FROM $tablename");

$row = mysql_fetch_array($link2);

$max = $row['price'];

 

a z tym drugim, jakbym chciał żeby min i max było tak "8" "7" co co trzeba zrobić? takie coś nie idzie

 

"'.$min'" "'.$max'"

 

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

EDIT:

 

trochę się spóźniłem ;) zaraz sprawdzę

 

spróbowałem np. tego

 

echo '<xml caption="'.$min.'" "'.$max.'"';

 

ale teraz nie wyświetla mi nic pomiędzy cudzosłowiami

""
Odnośnik do komentarza
Udostępnij na innych stronach

A zrób tak:

$link = mysql_query("SELECT MIN(price) FROM $tablename");
$row = mysql_fetch_array($link);
var_dump( $row );

I powiedz mi jakie klucze mają wartości tych tablic.

 

$link = mysql_query("SELECT MIN(price) FROM $tablename");
$row = mysql_fetch_row($link);
$min = $row[0];

$link2 = mysql_query("SELECT MAX(price) FROM $tablename");
$row = mysql_fetch_row($link2);
$max = $row[0];

Ewentualnie:

$link = mysql_query("SELECT MIN(price) AS min_price FROM $tablename");
$row = mysql_fetch_assoc($link);
$min = $row['min_price'];

$link2 = mysql_query("SELECT MAX(price) AS max_price FROM $tablename");
$row = mysql_fetch_assoc($link2);
$max = $row['max_price'];

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...