Hallo beste mensen!

Ik zou mijn god niet weten hoe ik dit moet maken maar heb toch een poging gedaan!
Als aller eerst wat ik graag zou willen: een lijst van 3 kolommen uit 1 database, deze bevat een username, totaal behaalde punten en totaal level.
Dit moet per user allemaal naast elkaar staan en dan het liefst 30 op 1 pagina.
Ook moet dit in de volgorde van beste naar de slechte gebruiker.

Het lijkt allemaal veel maar ik kom er dus NIET uit.. mijn tabel heet hs_users

De volgende code heb ik ergens op internet gevonden en aangepast maar het lukt me maar niet!


<?php
include ('config.php');
$sql = mysql_query("SELECT overall_xp,username FROM hs_users ORDER BY ID DESC LIMIT 10")or die(mysql_error());
WHILE ($rows = mysql_fetch_assoc($sql))
{
echo '
Id: '.$rows['overall_xp'].' <br /> 
Game: '.$rows['username'].' <br /> 
Genre: '.$rows['Genre'].' <br /> 
';
}
?>


Hartelijk dank voor diegene die me kan helpen!

Groetjes,
Luuk.
alle errors zijn op dit moment weg

Mooi zo, maar wel als je error_reporting aan staat toch?

knoppen mogen er onder

Dus je code die je (we) zo gaat maken, moet je er dus onder plakken.

Als ik uitga van een knop denk ik aan bijvoorbeeld: lijst2.php?p=3

Bijna. In je query haal je het nu op met $_GET['page'], je moet daarom dus ook geen ?p doen maar ?page=3.
Ramon, ?page= werkt inderdaad zoals het hoort! Super!
Zou je me snel willen vertelen hoe ik error_reporting aan moet zetten?



[size=xsmall]Toevoeging op 15/08/2013 13:03:56:[/size]

Ik probeer nu te sorteren op 2 dingen alleen geeft me dat een geheel witte pagina met de volgende code:


<?php
include ('config.php');
$page = (!isset($_GET['page']) || (int) $_GET['page'] == 0) ? 1 :(int) $_GET['page'];
$count_sql = mysql_query('SELECT COUNT(*) FROM hs_users');
$row = mysql_fetch_row($count_sql);
$total_items = (int) $row[0];
$items_per_page = 30;
$query = "SELECT overall_xp, username overall_lvl
        FROM hs_users
        ORDER BY overall_xp overall_lvl DESC
        LIMIT " . ($page - 1) * $items_per_page . "," . $items_per_page;

        if($sql= mysql_query($query)){

  while ($result = mysql_fetch_assoc($sql)){
    echo '<table>';
    
     echo '<tr>
            <td>'.$result['overall_xp'].'</td>
			<td>'.$result['overall_lvl'].'</td>
           </tr>';


  echo '</table>';
  }
     }
?>
Zet helemaal boven je php pagina:


<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
?>


Dan weet je zeker dat alle zaken die fouten kunnen geven ook echt gemeld worden aan je.
Daarom moet je deze functie natuurlijk weer uitzetten indien je pagina / website 'live' gaat, je bezoekers hebben immers met de echte php / sql foutmeldingen niets te maken.

EDIT:
alleen geeft me dat een geheel witte pagina

Dus moet je zorgen dat je een foutmelding krijgt, ik ga namelijk nu niet verklappen waar de fout zit.

hint: iets met mysql_error()...
Zelfs met de error displaying geeft de witte pagina geen fout melding.
Kijk eens naar mijn veel eerdere post (http://www.phphulp.nl/php/forum/topic/lijst-maken-van-3-kolommen/91827/1/#658101)

In jouw code staat nu op regel 13:
<?php if($sql= mysql_query($query)){ ?>


Oftewel in normale mensentaal:
als het gelukt is om de query van $query uit te voeren en dit in de variabele $sql te zetten moet je doen wat tussen de { en } van de if staat

Blijkbaar is het dus niet gelukt om dat uit te voeren of om dat in die variabele te zetten en dat zal dan wel een reden hebben.
De if heb je laten staan, de else (als het dus niet is gelukt) uit mijn eerdere post heb je weggehaald.
Ik snap het niet echt.. sorry.
Dan gaan we zorgen dat je het wel snapt, maar wel zodat je er zelf over na moet denken (ja ik weet het, ik ben een irritant ventje).

Jouw code heel beknopt:
<?php

$query = "SELECT *  FROM hs_users"; //  even ingekort voor het voorbeeld

if($sql = mysql_query($query)){ 

// hier gebeurd dan iets indien $sql = mysql_query($query) true is (wel gelukt is)

}
else{

// hier gebeurd dan dus iets indien $sql = mysql_query($query) NIET gelukt is (als je bijvoorbeeld een fout hebt gemaakt)

}
?>


Als je dus in die else{ } zet echo mysql_error(); krijg je dus een foutmelding waarom het niet gelukt is
Error die ik nu krijg:
Parse error: syntax error, unexpected T_ELSE in /home/luukwa/domains/freedomx.biz/public_html/high/lijst2.php on line 30

CODE
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
?>
<?php
include ('config.php');
$page = (!isset($_GET['page']) || (int) $_GET['page'] == 0) ? 1 :(int) $_GET['page'];
$count_sql = mysql_query('SELECT COUNT(*) FROM hs_users');
$row = mysql_fetch_row($count_sql);
$total_items = (int) $row[0];
$items_per_page = 30;
$query = "SELECT overall_xp, username overall_lvl
        FROM hs_users
        ORDER BY overall_xp overall_lvl DESC
        LIMIT " . ($page - 1) * $items_per_page . "," . $items_per_page;

        if($sql= mysql_query($query)){

  while ($result = mysql_fetch_assoc($sql)){
    echo '<table>';
    
     echo '<tr>
            <td>'.$result['overall_xp'].'</td>
			<td>'.$result['overall_lvl'].'</td>
           </tr>';


  echo '</table>';
  }
  else{
  }
  echo mysql_error(); 
  }
?>
Klik eens op het groene woord else in je code op dit forum, je komt dan in direct in de handleiding van php bij else.

Je typt nu else { } en daarna pas in het niets echo mysql_error(); }
Ahah, ik begrijp m nu ja.
Ik heb nu deze error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'overall_lvl DESC LIMIT 0,30' at line 3

Met deze code
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
?>
<?php
include ('config.php');
$page = (!isset($_GET['page']) || (int) $_GET['page'] == 0) ? 1 :(int) $_GET['page'];
$count_sql = mysql_query('SELECT COUNT(*) FROM hs_users');
$row = mysql_fetch_row($count_sql);
$total_items = (int) $row[0];
$items_per_page = 30;
$query = "SELECT overall_xp, username overall_lvl
        FROM hs_users
        ORDER BY overall_xp overall_lvl DESC
        LIMIT " . ($page - 1) * $items_per_page . "," . $items_per_page;

        if($sql= mysql_query($query)){

  while ($result = mysql_fetch_assoc($sql)){
    echo '<table>';
    
     echo '<tr>
            <td>'.$result['overall_xp'].'</td>
			<td>'.$result['overall_lvl'].'</td>
           </tr>';


  echo '</table>';
  }
		}else{
  echo mysql_error(); 
		}
?>

Reageren