eklof00Medlem sedan jan. 200737 inlägg Med den här koden:
<?php
session_start(); // Alltid överst på sidan
include "conn.php"; // Databasanslutningen
$result = mysql_query("SELECT user, stars FROM members WHERE online = 1");
$online_members = array();
while ($row = mysql_fetch_assoc($result)) {
$online_members[] = $row['user'] . ' ';
for ($i=0; $i<$row['stars']; $i++)
echo '<img src="images/goldstar.gif">';
}
echo "Antal Online: ".count($online_members). "<br />".implode("<br />", $online_members );
?>
Blir resultatet:
***Antal online:3
kalle
pelle
anna
jag vill ha:
antal online: 3
kalle**
pelle*
anna
@ndersMedlem sedan juni 200032 969 inlägg Visa koden som skriver ut användarna. Det finns ingen anledning att loopa igenom resultatsetet två gånger (som du verkar göra, eftersom utskriften av namn inte finns med i den koden du visar).
eklof00Medlem sedan jan. 200737 inlägg Det är ju:
$online_members[] = $row['user'] . ' ';
@ndersMedlem sedan juni 200032 969 inlägg My bad.
Det är jag som inte kan php, det är väl det som är problemet. ;)
- - - -
Men, om du istället för att använda echo på stjärnorna konkatenerar in dem i $online_members så borde det bli bra.
while ($row = mysql_fetch_assoc($result)) {
$tmp = $row['user'];
for ($i=0; $i<$row['stars']; $i++)
$tmp .= '<img src="images/goldstar.gif">';
$tmp .= ' ';
$online_members[] = $tmp;
}
(Borde kanske kunna fungera, mina kunskaper i php är något bristfälliga som sagt)
eklof00Medlem sedan jan. 200737 inlägg Ska jag ha samma echo?
echo "Antal Online: ".count($online_members). "<br />".implode("<br />", $online_members );
eklof00Medlem sedan jan. 200737 inlägg Det fungerade jättebra. Tack!
Jag försöker på in samma funktion i den är koden..
Har försökt själv att få in den tillsammans med
<td align="left">'.$data['user']. '</td>
<?php
session_start();
include "conn.php"; // Databasanslutningen
$sql = "
SELECT goldstar, t.user_id, m.matcher, m.score AS match_score, t.score AS tip_score,
m.tips AS match_tips, t.tips AS tip_tips, s.user, m.match_id
FROM spel_tb t
INNER JOIN members s ON s.user_id = t.user_id
INNER JOIN match_tb m ON m.match_id = t.match_id WHERE liga='as07'
ORDER BY m.match_id, t.user_id
";
$result = mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
// Först bygger vi upp arrayen
$match = array();
$user = array();
while ($row = mysql_fetch_assoc($result)) {
if (empty($user[$row['user_id']])) {
$user[$row['user_id']]['user'] = $row['user'];
$user[$row['user_id']]['tot_points'] = 0;
$user[$row['user_id']]['tips'] = array();
}
$row_points = $row['match_score'] == $row['tip_score'] ? 0 : 0;
$row_points += $row['match_tips'] == $row['tip_tips'] ? 1 : 0;
$user[$row['user_id']]['tot_points'] += $row_points;
$user[$row['user_id']]['tips'][$row['match_id']]['score'] = $row['tip_score'].' ('.$row['tip_tips'].')';
$user[$row['user_id']]['tips'][$row['match_id']]['points'] = $row_points;
$match[$row['match_id']]['match'] = $row['team'];
$match[$row['match-id']]['score'] = $row['match_score'].' ('.$row['match_tips'].')';
}
function cmp($a, $b)
{
if ($a['tot_points'] == $b['tot_points']) {
return 0;
}
return ($a['tot_points'] > $b['tot_points']) ? -1 : 1;
}
usort($user, "cmp");
// Sedan loopar vi ut arrayen för utskrift
echo '
<table>
<tr>
<th align="center"></th>
<th align="left">Medlem</th>
<td></td>
<th align="right">Poäng</th>
</tr>
';
$i=1;
foreach (array_slice($user, 0, 200) AS $data) {
echo '
<tr>
<td align="right">'.$i++.'.</td>
<td align="left">'.$data['user']. '</td>
<td></td>
<td align="right">'.$data['tot_points'].'p</td>
</tr>
';
}
echo '
</table>
';
?>