WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   PHP-script (https://www.wn.se/forum/showthread.php?t=1039607)

ep0x 2009-12-14 20:55

PHP-script
 
Hej! Det är så att jag ska ha en hemsida med spelfusk. Eftersom de finns så många olika spel är det jobbigt om jag måste rada upp dom i bokstavsordning osv sj, finns det något sånt script som gör det och gör de i s.k olika delar?

Ex:

• A
spel spel spel
spel spel spel
spel spel spel
spel spel spel

• B
spel spel spel
spel spel spel
spel spel spel


osv

Jonas 2009-12-14 21:10

1. Fel kategori (PHP är serverbaserat)
2. Skall du använda databas i någon form?
3. Vilka kunskaper har du inom PHP?

allstars 2009-12-14 22:12

Antingen gör du det semi-automatiskt; du skriver startbokstaven manuellt med html och exekuterar en funktion skriver ut alla rubriker/länkar som börjar på den bokstaven:
Citat:

<h2 id="names_a">A</h2>
<? func_getnames('a'); ?>

<h2 id="names__b">B</h2>
<? func_getnames('b'); ?>
...
Eller så gör du en funktion/subrutin som själv kollar skriver ut begynnelsebokstaven som rubrik om den skiljer sig från den förgående posten:
Citat:

<?
$last_letter =='';
$result = mysql_query("SELECT Id, Name, ... FROM TABLE ORDER BY Name ASC") ?>
if($result)
{
$num=mysql_numrows($result);
$i=0;

$name = mysql_result($result,$i,"Name");
echo "<h2>$name</h2><p>";
$last_letter ==substr($name,0,1);
while ($i < $num) {

$id = mysql_result($result,$i,"ID");
$name = mysql_result($result,$i,"Name");
if($last_letter!=substr($name,0,1))
echo "</p><h2></h2><p>";
echo "$name<br/>"

$last_letter=substr($name,0,1);
$i++;
}

}
else
{echo "Inga träffar";}

eliasson 2009-12-15 09:30

Läs mer här:
http://lmgtfy.com/?q=php+mysql+select+order+by

Magnus_A 2009-12-15 10:25

Nu utgår vi från att han har lagt allt i mysql och det är nog bäst för honom.
För att plocka alla, sortera på begynnelsebokstav och lista upp dem så kan man utnyttja mysql-funktionerna så långt som möjligt:
Citat:

select
namn,
upper(substring(namn,1,1)) as bokstav
from
tabell
order by namn
Då får du ett resultset som ser ut så här:
namn, bokstav
guitar Hero, G
super mario, S
Sims, S
The Sims, T
World of warcraft, W
Observera att det blir stor bokstav i bokstavsfältet oavsett vad du skrivit i namnfältet. Dessutom hamnar The Sims under T, men det är en fråga du får lösa på annat sätt, till exempel genom ett extra namnfält i databasen där du strippar inledande "the" och dylikt vid inläggning/uppdatering.

Sen när du snurrar igenom resultatet så kollar du bara om bokstavsfältet ändras och då triggar du en ny kategori i presentationen. Filosofin är att göra så mycket som möjligt i mysql så blir det enklare sen när du ska presentera data.


Alla tider är GMT +2. Klockan är nu 01:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson