Hey,

Ik wil m'n ledenlijst op alfabetische volgorde, maar hij staat nu op het id.
Dus eerst komt de gebruiker met id 1, dan met id 2 etc.

Kan iemand me helpen?

<?
blauw("Ledenoverzicht");


if(empty($_GET['page']))
{
$page = 1;
}
else
{
$page = $_GET['page'];
}

$max = 75;

$aantal_pag = mysql_query("SELECT * FROM gebruikers");
$aantal_leden = mysql_num_rows($aantal_pag);
$aantal_paginas = ceil($aantal_leden/$max);

$pagina = $page*$max-$max;

$i = 0;

if($_GET['order'] == "") {
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY id ASC LIMIT ".$pagina.", ".$max."") or die (mysql_error());
}elseif($_GET['order'] == "level"){
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY level ASC LIMIT ".$pagina.", ".$max."") or die (mysql_error());
}elseif($_GET['order'] == "naam"){
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY gebruikersnaam ASC LIMIT ".$pagina.", ".$max."") or die (mysql_error());
}

echo "
<table border='0' width='100%' cellspacing='0' cellpadding='2'>
  <tr>
    <td width='15%'><a href='?p=ledenlijst&order=naam'><b>Naam</b></a></td>
    <td width='20%'><b>Lid sinds</b></td>
    <td width='20%'><a href='?p=ledenlijst&order=naam'><b>Gebruikerslevel</b></a></td>
    <td width='10%'><b>PB verzenden</b></td>
    ";
    		if(isset($_SESSION['gebruiker'])) {
			$admins = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '".$_SESSION['gebruikersnaam']."'") or die (mysql_error());
		
		while($admin = mysql_fetch_assoc($admins)) {
		if($admin['status'] == "1"){
			echo "<td width='34%'><b>Profiel</b></td>";
		}
	}
}
			echo "
  </tr>
  ";
 while($leden = mysql_fetch_assoc($ledenlijst)) {
	  $kleur = ($i++ % 2) ? '#FFFFFF' : '#E7E7E7';
 echo "
   <tr>
    <td width='15%' bgcolor='".$kleur."'><a href=index.php?p=profiel&id=".$leden['id'].">".$leden['effect_voor']."".$leden['gebruikersnaam']."".$leden['effect_na']."</a></td>
    <td width='20%' bgcolor='".$kleur."'>".$leden['datum']."</td>
    <td width='20%' bgcolor='".$kleur."'>".$leden['level']."</td>
	<td width='10%' bgcolor='".$kleur."'><a href='?p=priveberichten&actie=nieuw&to=".$leden['gebruikersnaam']."'><img src='images/pb.gif' border='0'></a></td>
	";
        		if(isset($_SESSION['gebruiker'])) {
			$admins = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '".$_SESSION['gebruikersnaam']."'") or die (mysql_error());
		
		while($admin = mysql_fetch_assoc($admins)) {
		if($admin['status'] == "1"){
			echo "<td width='34%'><a href=index.php?p=admin&pagina=leden&actie=wijzigen&g=".$leden['gebruikersnaam']."><img src=images/edit.gif border=0></a></td>";
		}
	}
}
			echo "
  </tr>
";
}
echo "</table>";

for($i = 1; $i <= $aantal_paginas; $i++)
{
echo " <a href=\"index.php?p=ledenlijst&page=".$i."\"> ";


if($i == $_GET['page']) {
echo "<b>".$i."</b></a> ";
}else{
echo "".$i."</a> ";
}
if($i != $aantal_paginas)
{
echo "|";
}
}

?>


Dat is m'n ledenlijst script..
Aan je query toevoegen:

ORDER BY gebruikersnaam ASC
Dus dan wordt het script:

<?
blauw("Ledenoverzicht");


if(empty($_GET['page']))
{
$page = 1;
}
else
{
$page = $_GET['page'];
}

$max = 75;

$aantal_pag = mysql_query("SELECT * FROM gebruikers");
$aantal_leden = mysql_num_rows($aantal_pag);
$aantal_paginas = ceil($aantal_leden/$max);

$pagina = $page*$max-$max;

$i = 0;

if($_GET['order'] == "") {
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY id ASC ".$pagina.", ".$max."") or die (mysql_error());
}elseif($_GET['order'] == "level"){
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY level ASC ".$pagina.", ".$max."") or die (mysql_error());
}elseif($_GET['order'] == "naam"){
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY gebruikersnaam ASC ".$pagina.", ".$max."") or die (mysql_error());
}

echo "
<table border='0' width='100%' cellspacing='0' cellpadding='2'>
  <tr>
    <td width='15%'><a href='?p=ledenlijst&order=naam'><b>Naam</b></a></td>
    <td width='20%'><b>Lid sinds</b></td>
    <td width='20%'><a href='?p=ledenlijst&order=naam'><b>Gebruikerslevel</b></a></td>
    <td width='10%'><b>PB verzenden</b></td>
    ";
    		if(isset($_SESSION['gebruiker'])) {
			$admins = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '".$_SESSION['gebruikersnaam']."'") or die (mysql_error());
		
		while($admin = mysql_fetch_assoc($admins)) {
		if($admin['status'] == "1"){
			echo "<td width='34%'><b>Profiel</b></td>";
		}
	}
}
			echo "
  </tr>
  ";
 while($leden = mysql_fetch_assoc($ledenlijst)) {
	  $kleur = ($i++ % 2) ? '#FFFFFF' : '#E7E7E7';
 echo "
   <tr>
    <td width='15%' bgcolor='".$kleur."'><a href=index.php?p=profiel&id=".$leden['id'].">".$leden['effect_voor']."".$leden['gebruikersnaam']."".$leden['effect_na']."</a></td>
    <td width='20%' bgcolor='".$kleur."'>".$leden['datum']."</td>
    <td width='20%' bgcolor='".$kleur."'>".$leden['level']."</td>
	<td width='10%' bgcolor='".$kleur."'><a href='?p=priveberichten&actie=nieuw&to=".$leden['gebruikersnaam']."'><img src='images/pb.gif' border='0'></a></td>
	";
        		if(isset($_SESSION['gebruiker'])) {
			$admins = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '".$_SESSION['gebruikersnaam']."'") or die (mysql_error());
		
		while($admin = mysql_fetch_assoc($admins)) {
		if($admin['status'] == "1"){
			echo "<td width='34%'><a href=index.php?p=admin&pagina=leden&actie=wijzigen&g=".$leden['gebruikersnaam']."><img src=images/edit.gif border=0></a></td>";
		}
	}
}
			echo "
  </tr>
";
}
echo "</table>";

for($i = 1; $i <= $aantal_paginas; $i++)
{
echo " <a href=\"index.php?p=ledenlijst&page=".$i."\"> ";


if($i == $_GET['page']) {
echo "<b>".$i."</b></a> ";
}else{
echo "".$i."</a> ";
}
if($i != $aantal_paginas)
{
echo "|";
}
}

?>


zo?
probeer het eens.
Je doet een aantal vreemde dingen.

Je gaat er van uit dat $_GET['page'] een geheel getal bevat. Je weet niet wat de gebruiker in zijn url-balk scrijft. Dito voor $_GET['order']. Je gaat er van uit dat $_GET['order'] ofwel leeg is, ofwel level of naam. Weeral: de gebruiker kan daar ook iets anders schrijven.

Zo-iets is al beter:
Zo heb je zeker 1 van de drie mogelijkheden.
<?
if($_GET['order'] == "level"){
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY level ASC ".$pagina.", ".$max."") or die (mysql_error());
}elseif($_GET['order'] == "naam"){
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY gebruikersnaam ASC ".$pagina.", ".$max."") or die (mysql_error());
}else{
$ledenlijst = mysql_query("SELECT * FROM gebruikers ORDER BY id ASC ".$pagina.", ".$max."") or die (mysql_error());
}
?>

Op deze manier zou je kunnen garanderen dat $_GET['page'] een positief geheel getal is (hiervoor bestaan ook wel vooraf gemaakte functies) :
<?if ( ! $_GET['page'] || $_GET['page'] != floor($_GET['page']) || $_GET['page'] < 0)
$page = 1;
else
$page = $_GET['page'];?>

Wat bedoel je hier trouwens mee?

SELECT * FROM gebruikers ORDER BY level ASC ".$pagina.", ".$max.""

Wat doen die $pagina en $max daar? Misschien vergeten LIMIT te schrijven?

Reageren