Forum » Programiranje » PHP razvrščanje rezultatov po abecedi
PHP razvrščanje rezultatov po abecedi
SloDave ::
Mam eno stran kjer bi želel dobljene rezultate razvrstiti po abecedi. Stran je narejena kot tabela in vsak rezultat je nova vrstica. Kako to naredim. Aja pa še nekaj ko bi število rezultatov preseglo 30 vrstic bi želel da se nadaljni rezultati vpisujejo v stolpec zraven taga ne pa naprej dol a mi zna kdo pomagat??
teac ::
$sql = SELECT * FROM table_name ORDER BY name DESC LIMIT 0,30Potem pa lahko izpisuješ na več načinov.
npr:
while ($row = mysql_fetch_array($sql))table_name = ime tvoje tabele
{ echo $row["name"] . '< br >'; }
name = ime stolpca z imeni, ki jih sortiraš
Če pa hočeš met, ko se jih izpiše 30, druge zraven, pa si naredi dve tabeli, pa pol v njih izpisuješ.
Zgodovina sprememb…
- spremenilo: teac ()
DavidJ ::
by name ASC ce hoces od A - Z .. ce pa hoces od Z - A pa desc
"Do, or do not. There is no 'try'. "
- Yoda ('The Empire Strikes Back')
- Yoda ('The Empire Strikes Back')
SloDave ::
NE vem men se vedno ni cist jasno. To je koda ki vseskup razvršča
Igre
//razvrscanje glede na ukaz
if ($menu == "arkade"){
$zvrst = "(kategorija = 'arkade')";
$naslovvrsta = "Arkadne igre";
}
elseif($menu =="adventure"){
$zvrst= "(kategorija ='adventure')";
$naslovvrsta= "Adventure";
}
elseif($menu =="akcije"){
$zvrst= "(kategorija ='akcije')";
$naslovvrsta= "Akcijske igre";
}
elseif($menu =="strategije"){
$zvrst= "(kategorija ='strategije')";
$naslovvrsta= "Strategije";
}
elseif($menu =="simulacije"){
$zvrst= "(kategorija ='simulacije')";
$naslovvrsta= "Simulacije";
}
elseif($menu =="sportne"){
$zvrst= "(kategorija ='sportne')";
$naslovvrsta= "Športne igre";
}
elseif($menu =="voznje"){
$zvrst= "(kategorija ='voznje')";
$naslovvrsta= "Avtomobilske igre";
}
elseif($menu =="drugo"){
$zvrst= "(kategorija ='drugo')";
$naslovvrsta= "Druge igre";
}
//ta skripta se poveze
$host = "localhost";
$username = "xxx";
$geslo = "xxx";
$databaza = "daveigre";
$tabela = "igre";
$povezava = mysql_connect ($host , $username , $geslo );
if ($povezava == false)
{
echo "napaka pri povezavi v databazo";
}
//ter izbere databazo
@mysql_select_db($databaza) or
die("ne morem izbrati databaze");
if ($razvrst=="vse"){
$ukaz = "select * from $tabela";
}
else {
$ukaz = "select * from $tabela where (kategorija ='$zvrst')";
}
$rezultat = mysql_db_query($databaza , $ukaz);
if ($rezultat)
{
echo"";
";
}
mysql_close();
?>
To je pa rezultat
http://cgi-bin.spaceports.com/~daveigre...
Kaj morem sedaj dodat da bo razvrščeno po abecedi pa da ko bo doseglo število 35 vnosov bo šlo v nov stolpec ki se bo nahajal zraven!
//razvrscanje glede na ukaz
if ($menu == "arkade"){
$zvrst = "(kategorija = 'arkade')";
$naslovvrsta = "Arkadne igre";
}
elseif($menu =="adventure"){
$zvrst= "(kategorija ='adventure')";
$naslovvrsta= "Adventure";
}
elseif($menu =="akcije"){
$zvrst= "(kategorija ='akcije')";
$naslovvrsta= "Akcijske igre";
}
elseif($menu =="strategije"){
$zvrst= "(kategorija ='strategije')";
$naslovvrsta= "Strategije";
}
elseif($menu =="simulacije"){
$zvrst= "(kategorija ='simulacije')";
$naslovvrsta= "Simulacije";
}
elseif($menu =="sportne"){
$zvrst= "(kategorija ='sportne')";
$naslovvrsta= "Športne igre";
}
elseif($menu =="voznje"){
$zvrst= "(kategorija ='voznje')";
$naslovvrsta= "Avtomobilske igre";
}
elseif($menu =="drugo"){
$zvrst= "(kategorija ='drugo')";
$naslovvrsta= "Druge igre";
}
//ta skripta se poveze
$host = "localhost";
$username = "xxx";
$geslo = "xxx";
$databaza = "daveigre";
$tabela = "igre";
$povezava = mysql_connect ($host , $username , $geslo );
if ($povezava == false)
{
echo "napaka pri povezavi v databazo";
}
//ter izbere databazo
@mysql_select_db($databaza) or
die("ne morem izbrati databaze");
if ($razvrst=="vse"){
$ukaz = "select * from $tabela";
}
else {
$ukaz = "select * from $tabela where (kategorija ='$zvrst')";
}
$rezultat = mysql_db_query($databaza , $ukaz);
if ($rezultat)
{
echo"
$naslovvrsta | |
$ime | ";1 |
}
mysql_close();
?>
To je pa rezultat
http://cgi-bin.spaceports.com/~daveigre...
Kaj morem sedaj dodat da bo razvrščeno po abecedi pa da ko bo doseglo število 35 vnosov bo šlo v nov stolpec ki se bo nahajal zraven!
DavidJ ::
if ($razvrst=="vse"){
$ukaz = "select * from $tabela ORDER BY ime ASC";
}
else {
$ukaz = "select * from $tabela where (kategorija ='$zvrst') ORDER BY ime ASC ";
}
$rezultat = mysql_db_query($databaza , $ukaz);
if ($rezultat)
{
echo"";
echo" $naslovvrsta
";
tisto s stolpci.. ni mi jasno kaj hoces..
$ukaz = "select * from $tabela ORDER BY ime ASC";
}
else {
$ukaz = "select * from $tabela where (kategorija ='$zvrst') ORDER BY ime ASC ";
}
$rezultat = mysql_db_query($databaza , $ukaz);
if ($rezultat)
{
echo"";
echo" $naslovvrsta
";
tisto s stolpci.. ni mi jasno kaj hoces..
"Do, or do not. There is no 'try'. "
- Yoda ('The Empire Strikes Back')
- Yoda ('The Empire Strikes Back')
SloDave ::
Hvala, res se mi ni sanjalo kako to naredit to glede razvrščanja v stolpce je pa tko
Poglej na to stran
http://cgi-bin.spaceports.com/~daveigre...
Boš videl kolk je rezultatov ki so razvrščeni sam v en stolpec. Zdaj bi pa rad da ko število rezultatov doseže 35 vsak naslednji rezultat gre v stolpec ki se kreira zraven (tabela) in se tko nadaljuje. Se pravi če imam več kot 35 rezultatov sta dva stolpca ne pa eden zelo dolg!
Poglej na to stran
http://cgi-bin.spaceports.com/~daveigre...
Boš videl kolk je rezultatov ki so razvrščeni sam v en stolpec. Zdaj bi pa rad da ko število rezultatov doseže 35 vsak naslednji rezultat gre v stolpec ki se kreira zraven (tabela) in se tko nadaljuje. Se pravi če imam več kot 35 rezultatov sta dva stolpca ne pa eden zelo dolg!
OwcA ::
Neki v tem smislu, bi moral delat:
$limit = ($stevilost > 35) ? 35 : $stevilost;
for ($i=0; $i<$limit; $i++)
{
for ($j=0; $j<$num_rows; $j+=35)
{
if ($i+$j <= $stevilost)
{
$id = mysql_result($rezultat, $i+$j, "id");
$ime = mysql_result($rezultat, $i+$j, "ime");
$url = mysql_result($rezultat, $i+$j, "url");
//... blabla (izpis rezultatov)
}
else
{
// ...blabla (prazna celica)
}
}
}
Notranja zanka, ti generira potrebno stevilo stolppcev in jih napolni z podatki ali pa ustvari prazne celice.
Odsvetujem pa ti uporabo mysql_result, ker so 3 klici precej bol potratni, kot en klic mysql_fetch_row() ali mysql_fetch_array().
Tudi tisto cetico else-if stavkov, bi lahko nadomestil z enim case stavkom...
$limit = ($stevilost > 35) ? 35 : $stevilost;
for ($i=0; $i<$limit; $i++)
{
for ($j=0; $j<$num_rows; $j+=35)
{
if ($i+$j <= $stevilost)
{
$id = mysql_result($rezultat, $i+$j, "id");
$ime = mysql_result($rezultat, $i+$j, "ime");
$url = mysql_result($rezultat, $i+$j, "url");
//... blabla (izpis rezultatov)
}
else
{
// ...blabla (prazna celica)
}
}
}
Notranja zanka, ti generira potrebno stevilo stolppcev in jih napolni z podatki ali pa ustvari prazne celice.
Odsvetujem pa ti uporabo mysql_result, ker so 3 klici precej bol potratni, kot en klic mysql_fetch_row() ali mysql_fetch_array().
Tudi tisto cetico else-if stavkov, bi lahko nadomestil z enim case stavkom...
SloDave ::
Sorry ker morim sam men to ni čist nič jasno. Hvala tistmu ki mi bo rešu ta problem!
To sem zdaj naredu kaj je narobe da ne dela??
Igre
require("nastavitve.php");
require("nastigre.php");
include("povezi.php");
$ukaz = "select * from igre";
$rezultat = mysql_db_query($databaza , $ukaz);
if ($rezultat)
{
echo"
width=559>";
echo" test ";
$stevilost = mysql_num_rows ($rezultat);
$limit = ($stevilost > 35) ? 35 : $stevilost;
for ($i=0; $i<$limit; $i++)
{
for ($j=0; $j<$num_rows; $j+=35)
{
if ($i+$j <= $stevilost)
{
$id = mysql_result($rezultat, $i+$j, "id");
$ime = mysql_result($rezultat, $i+$j, "ime");
echo" $ime ";
}
else
{
echo" ";
}
}
}
echo"1 ";
echo"";
}
mysql_close();
?>
Še enkrat hvala za pomoč
To sem zdaj naredu kaj je narobe da ne dela??
require("nastavitve.php");
require("nastigre.php");
include("povezi.php");
$ukaz = "select * from igre";
$rezultat = mysql_db_query($databaza , $ukaz);
if ($rezultat)
{
echo"
echo"
$stevilost = mysql_num_rows ($rezultat);
$limit = ($stevilost > 35) ? 35 : $stevilost;
for ($i=0; $i<$limit; $i++)
{
for ($j=0; $j<$num_rows; $j+=35)
{
if ($i+$j <= $stevilost)
{
$id = mysql_result($rezultat, $i+$j, "id");
$ime = mysql_result($rezultat, $i+$j, "ime");
echo"
}
else
{
echo"
}
}
}
echo"
echo"";
}
mysql_close();
?>
Še enkrat hvala za pomoč
Zgodovina sprememb…
- spremenil: SloDave ()
OwcA ::
Hm, jst tega kr sm napisu nisem preizkusal, misleno je blo samo kot ideja... Ce hoces konkretno pomoc, bos pomoje moral popravit izpis kode (v zadnjem postu) v neko berljivo obliko, ker dvomim, da se komu da rocno ustvarjat vrstice. Potem pa se opisi kaj ne dela, oz. napisi sporocilo o napaki (ce do te pride).
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | vba arrayOddelek: Programiranje | 930 (623) | Vazelin |
» | narediti tabele in izvajati sql ukazeOddelek: Pomoč in nasveti | 1445 (1128) | killa bee |
» | Preprost kratek SQL - pomočOddelek: Programiranje | 1024 (801) | Tody |
» | sql-t stored procedureOddelek: Programiranje | 1065 (932) | detroit |
» | [mySQL] Kaj je hitrejše?Oddelek: Programiranje | 1403 (1204) | dmok |