» »

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,30
Potem pa lahko izpisuješ na več načinov.
npr:
while ($row = mysql_fetch_array($sql))
{ echo $row["name"] . '< br >'; }
table_name = ime tvoje tabele
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')

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"";
echo"";

$stevilost = mysql_num_rows ($rezultat);
for ($i=0; $i<$stevilost; $i++)
{
$id = mysql_result($rezultat, $i, "id");
$ime = mysql_result($rezultat, $i, "ime");
$url = mysql_result($rezultat, $i, "url");

echo"";
}
echo"";
echo"
 $naslovvrsta
 $ime1
";
}

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..
"Do, or do not. There is no 'try'. "
- 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!

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

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"";

$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"
 test
 $ime
1
";
}

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

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

vba array

Oddelek: Programiranje
12930 (623) Vazelin
»

narediti tabele in izvajati sql ukaze

Oddelek: Pomoč in nasveti
181445 (1128) killa bee
»

Preprost kratek SQL - pomoč

Oddelek: Programiranje
71024 (801) Tody
»

sql-t stored procedure

Oddelek: Programiranje
101065 (932) detroit
»

[mySQL] Kaj je hitrejše?

Oddelek: Programiranje
141403 (1204) dmok

Več podobnih tem