Goedenavond,

Ik heb een kolom waar ik integers in op sla die kunnen varieren van 0 t/m 9999999. Nu wil ik alle records ophalen die hoger zijn dan 0. En hij moet bij de hoogste record beginnen. Op dit moment gebruik ik deze SQL code:

<?php
$ophalen = mysql_query("SELECT * FROM users WHERE cc_bereden > 0 AND username != 'Anonymous' ORDER BY cc_bereden") OR DIE(mysql_error());
?>

Wie kan mij hier bij helpen?

Groetjes Remy
Omdat je niet aangeeft dat je 'aflopend' (DESC) wilt sorteren, neemt MySQL de standaard instelling 'oplopend' (ASC). Zet dit dus altijd in je query om duidelijkheid te verschaffen. Zowel voor jezelf als voor de database.

ORDER BY kolomnaam DESC

Edit: typo

<?php
$ophalen = "
SELECT 
     al, jou, velden 
FROM 
     users 
WHERE 
     cc_bereden > 0 
AND 
    username <> 'Anonymous' 
ORDER BY 
    cc_bereden DESC
            ";
$res=mysql_query($ophalen)
or die (mysql_error());
?> 
Hartstikke bedankt voor de hulp! :) Alleen ordert hij hem niet echt goed. Kijk zelf maar..

Ik snap ook niet echt wat er fout gaat. Hier het stukje script:


<?php
$ophalen = mysql_query("SELECT * FROM users WHERE cc_bereden > 0 AND username != 'Anonymous' ORDER BY cc_bereden DESC") OR DIE(mysql_error());
$i = 1;
while($lid = mysql_fetch_array($ophalen)) 
       {

        if($i == "61") 
            {
                echo "</td><td width=\"50%\">";
            }
        $afstand = round($lid['cc_bereden'] * 0.8);
        ?>
        <table cellspacing cellpadding="5" width="400" style="border:1px #c4c4c4 solid">
          <tr>
            <td width="100%">
                <font size="2">
                <b><?php echo $i; ?></b>.
                <b><?php echo $lid['username']; ?></b><br />
                <?php echo $lid['cc_bereden']; ?> achtbanen - <?php echo $afstand; ?> kilometer<br /><a href="cc_lijst.php?user=<?php echo $lid['id']; ?>">Bekijk de gehele lijst</a>
                <?php $i++; ?>
                </font>
            </td>
          </tr>
        </table><br />
<?php
        }
?>


Groetjes Remy
4 achtbanen - 3 kilometer
33 achtbanen - 26 kilometer
3 achtbanen - 2 kilometer

Weet je zeker dat die getallen integers zijn? Er wordt gesorteerd alsof het TEXT (CHAR of VARCHAR) is. En dan doel ik op de getallen 4, 33 en 3.
Frank schreef op 17.08.2006 19:34
4 achtbanen - 3 kilometer
33 achtbanen - 26 kilometer
3 achtbanen - 2 kilometer

Weet je zeker dat die getallen integers zijn? Er wordt gesorteerd alsof het TEXT (CHAR of VARCHAR) is. En dan doel ik op de getallen 4, 33 en 3.


Oeps volgens mij heb ik zo de kolom aangemaakt:

<?php
mysql_query("ALTER TABLE `users` ADD `cc_bereden` VARCHAR( 250 ) AFTER `registreerip`") OR DIE(mysql_error());
?>

Dat moet natuurlijk dit zijn: INT( 11 )..

Op dit moment kan ik niet in PHPmyadmin, hoe kan ik door een query handmatig uitvoeren VARCHAR( 250 ) verranderen in INT( 11 )?

Groetjes Remy
Zie de handleiding.

Edit: En gebruik GEEN backtics ` in je queries! Afval hoort thuis in de prullenbak, niet in een query.
waarom maakt pma eigenlijk querys met backticks? terwijl ze er EINGELIJK, officiéél niet horen? dat volg ik niet helemaal... en sóms werkt het wel met backticks, en niet zonder
Met mijn weinig Engels en mijn weinig kennis van MySQL heb ik deze SQL code kunnen produceren:

<?php
session_start();
$page_title = "Modify";
include 'inc_header.php';

mysql_query("ALTER TABLE users MODIFY (cc_bereden INT( 11 ))") OR DIE(mysql_error());

echo "Het type in de kolom cc_bereden in de tabel users is verranderd naar INT( 11 )!";

include 'inc_footer.php';
?>

Helaas keurt mijn server dit niet goed..


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 '(cc_bereden INT( 11 ))' at line 1


Wie kan mij hier bij helpen?

Groetjes Remy

en sóms werkt het wel met backticks, en niet zonder
Dat zal zijn omdat je dan verboden namen of gereserveerde woorden als database-, tabel- en/of kolomnaam hebt gebruikt. 1 is fout, `1` werkt in MySQL wel. Maar dat wil je echt niet! Kun je alle fouten gaan afleren wanneer je met een andere database aan de slag gaat.
En inmiddels is het mij al gelukt!

<?php
session_start();
$page_title = "Modify";
include 'inc_header.php';

mysql_query("ALTER TABLE users CHANGE cc_bereden cc_bereden INT(11)") OR DIE(mysql_error());

echo "Het type in de kolom cc_bereden in de tabel users is verranderd naar INT( 11 )!";

include 'inc_footer.php';

?>

Bedankt voor jullie hulp!

Groetjes Remy

Reageren