Autor Zpráva
juraj
Profil
Dobrý
ako zoradiť dva stĺpce,aby sa mi tovar zoradil podľa abecedy,to funguje ale aj podľa ceny od najnižšej to mi už nefunguje
Používam taký kód
$search = $k;


$search = strip_tags($search);


$search = mysql_real_escape_string($search);


if ($search == "")
{
   echo "<p>Opps! You forgot to enter a search term.</p>";
} else {


$sql = "SELECT * FROM tovary WHERE MATCH(nazov) AGAINST('$search*' IN BOOLEAN MODE) 
ORDER BY `nazov` ASC,CENA DESC
 LIMIT 4";
$result = mysql_query($sql) or die("Problem, with Query:".mysql_error());

// Get number of articles, assign value to a variable
$count = mysql_num_rows($result);

echo "<h3>Search Results</h3>";

echo "<p>you searched for <b>$search</b> there are $count matches.</p>";

$TableRows = mysql_num_rows($result);
$i = 0;
while ($i <$TableRows)
{
//Add resulting tablerow to relvant variable
$cena = mysql_result($result, $i, "cena");
$articleTitle = mysql_result($result, $i, "nazov");
$id = mysql_result($result, $i, "idtovar");

echo "<h2><a href='www.mydomain.com/$articleTitle'>$articleTitle</a></h2>";
echo "<p>$cena €</p>";
echo "<p>$id id</p>";
echo "<p><a href='www.mydomain.com$articleTitle'>Read More</a></p>";


$i ++;
} 
} 
ďakujem za rady
Davex
Profil
Co v SQL dotazu znamená CENA DESC?
juraj
Profil
Davex:
Take podobne príklady som našiel na internete že sa spájajú čiarkou a stačí dať ASC alebo DESC ale mi to nefunguje
Alphard
Profil
Tak si vyhledejte, co znamená DESC, co ASC a zamyslete se, kterou variantu potřebujete, abyste řadil od nejnižší ceny.
juraj
Profil
Alphard:
Viem čo znamenajú skratky ASC a DESC ale ja potrebujem aby názov výrobku aj s cenou sa triedil od najnižšiej ceny po najvyšiu a nazov výrobku napr autičko 5eur, autičko 10 eur potrebujem to takto zotriediť
pcmanik
Profil
juraj:
V tom prípade by to malo robiť to čo chceš. Neukladáš náhodou ceny ako string?
juraj
Profil
Ceny ukladam ako desatine decimal 10,2
Keeehi
Profil
juraj:
zoradil podľa abecedy,to funguje ale aj podľa ceny
A mohl bys prosím tě vysvětlit (nejlépe na nějakém příkladu), jak to řazení podle obou pravidel zároveň má fungovat?
juraj
Profil
Keeehi:
Napr, do formulára napíšem pravítko
a na výstupe by som potreboval dostať napr

Pravítko biele 1.3eur
Pravitko modre 1.5eur
Pravitko 50 cm 1.9eur
Logaritmické pravítko 2eur
atd ake tovary by boli uložene v mysql
dakujem
Alphard
Profil
Ten příklad je seřazený jen podle ceny, takže jednoduše order by cena.
juraj
Profil
Alphard:
To, som tiež skúšal, ale to mi vypísalo všetky produkty,kde zotriedilo podľa ceny ale nezodpovedali výsledky k podobnému hľadanému názvu výrobku
Keeehi
Profil
juraj:
A tu věc na krku používáš? To že Alphard napsal že máš použít order by cena, ještě neznamená, že máš smazat jakoukoli jinou část, které se řazení netýká.
"SELECT * FROM tovary WHERE MATCH(nazov) AGAINST('$search*' IN BOOLEAN MODE) 
ORDER BY CENA DESC
 LIMIT 4"
juraj
Profil
Keeehi:
Predstav,ži ju používam,potom je tu načo diskusne forum ked niekto ma problem. Tak ten problem dam radu a hned davať uštipačné poznamky....
pcmanik
Profil
juraj:
Takže kam sme sa dostali ide ti to uz?

Ak nie tak sem daj malú vzorku dát, najlepšie SQL INSERT aby sme si to sami nemuseli davat do DB. A výsledok aký chceš.
juraj
Profil
pcmanik:
Vzorky dat
CREATE TABLE IF NOT EXISTS `tovary` (
  `idtovar` bigint(255) NOT NULL,
  `nazov` varchar(255) NOT NULL,
  `popis` varchar(255) NOT NULL,
  `cena` decimal(10,2) NOT NULL,
  PRIMARY KEY  (`idtovar`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `tovary` (`idtovar`, `nazov`, `popis`, `cena`) VALUES
(1, 'Hodiny Witch', 'Hodiny Witch sú vhodným doplnkom do každej izbičky. Nástenné hodiny Witch sú na jednu AA batériu, nie je súčasťou výrobku. Nástenné hodiny Witch majú priemer 25 cm.', '3.36'),
(2, 'Posteľné návliečky Camp Rock fialová 140/200', 'Kvalitná posteľná bielizeň Camp Rock fialová. Návliečky Camp Rock fialová 140 / 200. Návliečky do postieľky, detské návliečky, návliečky Camp Rock fialová za prekvapivé ceny.\n \n \nZapínanie na zips.', '10.32'),
(3, 'Roletka Hannah Montana', 'Roletka na bočné okno automobilu s motívom Hannah Montana. Slnečnú clonu Hannah Montana možno na okno upevniť tromi prísavkami alebo dvoma nastavitelnými háčiky. Veľkou prednosťou tienidla Hannah Montanas je, že ho možno aretovať v ľubovolnej pozici .Hmot', '4.68'),
(4, 'Slnečná clona Hannah Montana', 'Slnečná clona na bočné okno automobilu s motívom Hannah Montana. Balenie 1 pár (2ks). Hmotnosť clony 0.10 kg', '3.96'),
(5, 'Posteľná bielizeň TAXI New York 140/200', 'Kvalitná posteľná bielizeň TAXI New York . Návliečky TAXI New Yorks naozaj nápaditým vzorom žľtého taxi s pozadim New Yorka. Návliečky TAXI New York pre všetkých milovníkov USA. Návliečky TAXI New Yorksú  vyrobené z čistej bavlny. Návliečky TAXI New York ', '17.40'),
(6, 'Posteľná bielizeň Ed Hardy Ryba ružová 140/200', 'Kvalitná posteľná bielizeň Ed Hardy Ryba ružová. Kvalitná posteľná bielizeň Ed Hardy Ryba ružová je vyrobená zo 100% Polyesteru (Mikrovlákna). Návliečky Ed Hardy Ryba ružová sú veľmi jemné a príjemné na omak. Návliečky Ed Hardy Ryba ružová v rozmere 140/2', '23.64'),
(7, 'Lampička Ed Hardy Tiger', 'Lampička Ed Hardy Tiger pre všetkých priaznivcov tejto značky, v ponuke máme tiež vankúšiky, deky, peračníky, tašky, hodiny a samozrejme obliečky značky Ed Hardy.', '20.28'),
(8, 'Lampička Ed Hardy Lebka', 'Lampička Ed Hardy pre všetkých priaznivcov tejto značky, v ponuke máme tiež vankúšiky, deky, peračníky, tašky, hodiny a samozrejme obliečky značky Ed Hardy.', '20.28'),
(9, 'Obliečky Hannah Montana biela 140/200', 'Obliečky Hannah Montana biela 140/200\nKvalitné posteľné obliečky Hannah Montana bílá zo 100% bavlny. Detské obliečky DISNEY Hannah Montana bílá za prekvapivé ceny. Obliečky Hannah Montana bílá od firmy HERDING v rozmere 140x200 + 70x90 cm.\n \nZapínanie na ', '12.96'),
(10, 'Peračník Ed Hardy Tiger guľatý 21x8,5cm', 'Guľatý peračník Ed Hardy Tiger. Školský peračník Ed Hardy Tygr nielen pre malých školákov. Guľatý peračník Ed Hardy Tygr je na voľne ložené písacie potreby. Guľatý peračník Ed Hardy Tygr má rozmery 21 cm dĺžka 8,5 cm priemer.', '9.84');
Davex
Profil
$sql = "
SELECT *
FROM tovary
WHERE MATCH(nazov) AGAINST('$search*' IN BOOLEAN MODE) 
ORDER BY cena, nazov
LIMIT 4
";

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: