Beste lezers,

Ik heb een mySQL database met 100 rijen. Ieder rij bevat een id, naam en voting van een bedrijf.

bedrijf 1 heeft een voting van 10 stemmen,
bedrijf 2 heeft een voting van 8 stemmen,
bedrijf 3 heeft een voting van 4 stemmen,
etc


Nu kan ik alle bedrijven weergeven en sorteren op het aantal stemmen dat ze hebben (voting) en dan de ranking (plaats) er achter zetten. Een sort van top100 dus. Bedrijf 1 staat dan bovenaan uiteraard.

Maar hoe kan ik nu info laten zien over bedrijf 1 en zijn bijbehorende ranking (1e plaats in dit geval)? Ik wil dus weten wat zijn positie is in de top100 en niet hoveel stemmen die heeft.

Voor jullie wellicht een eitje maar ik kom er echt niet uit.
$sql='SELECT bedrijf FROM table Order by voting"

zoiets
hoe word er gestemd? Word er een cijfer gegeven? Of moet een bezoeker op de beste stemmen?
Als je je bedrijven omgekeerd gesorteerd op aantal stemmen uit je DB haalt, dan kun je hun plaats weergeven bij het fetchen:

<?php
// top 100
$sql = "
SELECT bedrijf
FROM tabel
ORDER BY voting DESC";
if (!($res = mysql_query ($sql))) {
trigger_error (mysql_error ());
}
else {
$plaats = 1;
while ($row = mysql_fetch_array ($res)) {
echo '<p>' . $plaats . ': ' . $row['bedrijf'] . '</p>';
$plaats++;
}
}
?>

edit: ik krijg de indenting niet goed. Het is net of PHPhulp nu voorloopspaties weghaalt???
Met het script van Jan krijg ik deze uitput:

rang 1: met 547 stemmen (id=9595)

rang 2: met 512 stemmen (id=3888)

rang 3: met 453 stemmen (id=4838)

rang 4: met 450 stemmen (id=9517)

rang 5: met 343 stemmen (id=60)

rang 6: met 332 stemmen (id=8607)

rang 7: met 329 stemmen (id=9615)

rang 8: met 321 stemmen (id=3312)


Daar moet ik denk ik wel beginnen maar de hamvraag is nu...

Ik wil bijvoorbeeld alleen de info zien van bedrijf met id 9615. Ik weet hoe ik 1 row kan oproepen met een query maar hoe kan ik dan zien dat deze op rang 7 staat?

Snappen jullie het een beetje?


Reageren