Het moet dus als volgt gebeuren.
Linker tabel zoals hierboven staat. Komen dus username remaining en totaal verstuurd goud te staan.
Rechter tabel moet dus de gegevens bevatten van elke user in een andere rij.
Nu stopt die alle runs van alle users in 1 rij.
laatste voorbeeld geeft aan dat user imagination 4 runs heeft met de waardes. Echter die laatste waarde is van de user test.
Ik kom er helaas even niet meer uit.
Elke tip is welkom.
In je rechtertabel maak je maar 1 <tr> met resultaten aan. Niet verwonderlijk dat alles dan op dezelfde regel komt. ;-)
Je zou binnen de while-loop van regel 144 kunnen controleren of de portal_name is gewijzigd ten opzichte van de vorige waarde. Zo ja, dan begin je een nieuwe <tr>.
Ik denk dat je hier met alle geweld twee verschillende typen informatie wilt combineren: een soort van samenvatting en een bijbehorende gedetailleerde beschrijving.
Als je deze nu eens opsplitst (op wat voor manier dan ook)? Je zou in eerste instantie alleen de linker tabel kunnen laten zien, en dan op een details-link kunnen klikken waarna je of naar een aparte pagina gaat, of dat er een soort van verborgen div uitklapt met een lijstje van "runs" hierin, desnoods on-the-fly opgehaald met een AJAX-call (of wat dan ook, gebruik je verbeelding :p).
Ook is het meestal zo dat een layout verticaal makkelijker uitbreidbaar is dan horizontaal dus ik zou die runs hoe dan ook onder elkaar zetten, en niet naast elkaar.
Hoi Thomas,
Ja dit dient idd zo te gaan ivm we nu werken met google sheets. De owner wil dit graag zo zien.
Ik kan natuurlijk 1 tabel maken alleen het eerste gedeelte moet dan fixed zijn. en het 2de gedeelte scrollbaar.
Echter werkt dit niet.
Dus dien ik het zo te doen.
Nu heb ik bijna de oplossing gevonden.
code zoals die nu is
<div style="width:640px; overflow: hidden; background-color:;">
<div class="users_data" style="width:300px; background-color:#000; float:left; ">
<?php
$query = $db->query('SELECT *,
SUM(gold_sended) as total_gold
FROM
gold_sended
INNER JOIN
google_users ON (gold_sended.user_id = google_users.oauth_uid)
INNER JOIN
gold_swap_value ON (gold_sended.gold_swap_id = gold_swap_value.id)
WHERE
gold_sended.week = "29"
AND
(gold_sended.gold_swap_id = "'.$db->real_escape_string($_GET['a']).'")
GROUP BY
user_id
ORDER BY
google_users.portal_name ASC');
?>
<table width="100%" border="1">
<tr>
<td>Name:</td>
<td>Remaining:</td>
<td>Total:</td>
</tr>
<?php
while($res = $query->fetch_assoc())
{
$calcRemaining = $res['gold_swap_value'] - $res['total_gold'];
if($calcRemaining == $res['gold_swap_value']) {
$remaining = '<td bgcolor="red"><font color="black">'.number_format($res['gold_swap_value']).'<font></td>';
} else {
$remaining = '<td bgcolor="orange"><font color="black">'.number_format($calcRemaining).'</font></td>';
}
echo '
<tr>
<td>'.$res['portal_name'].'</td>
'.$remaining.'
<td>'.$res['total_gold'].'</td>';
$account[] = $res['portal_name'];
}
?>
</tr>
</table>
</div>
<div class="users_content" style="width:320px; float:right; background-color:#3e3e3e; overflow:auto;">
<table width="100%" border="1" style="table-layout:fixed;">
<tr>
<?php
for($i = 1; $i < 50; $i++)
{
echo '
<td width="100px">Run '.$i.':</td>
<td width="100px">Date</td>';
}
?>
</tr>
<tr>
<?php
$query1 = $db->query('
SELECT * FROM gold_sended, google_users WHERE gold_sended.user_id = google_users.oauth_uid AND (week = "29") AND (gold_sended.gold_swap_id = "1") ORDER BY google_users.portal_name ASC');
$i = 0;
while($res1 = $query1->fetch_assoc())
{
$countQuery = $db->query('SELECT *, COUNT(gold_sended) as total_gold FROM gold_sended WHERE gold_sended.user_id = "'.$res1['oauth_uid'].'" AND (gold_swap_id = "1") AND (week = "29")');
$count = $countQuery->fetch_assoc();
if($i >= $count['total_gold']) { echo '</tr><tr>'; $i = 0;}
echo '<td>'.$res1['gold_sended'].'</td>
<td>'.$count['total_gold'].'</td>';
$i++;
}
?>
</tr>
</table>
</div>
<!--OTHER_DIV-->
<div style="clear:both;"></div>
</div>
En als je nu eerst eens alle info ophaalt en in een array opslaat onder eenzelfde oauth_uid, en dit array daarna uitdraait? Lijkt mij een stuk makkelijker.
Je zult trouwens het maximale aantal runs van iemand ergens moeten bijhouden, en de andere rijen opvullen met een colspan ter grootte van het verschil tussen max en runs van de huidige rij. Dit ten einde syntactisch kloppende HTML te schrijven. Simpelweg omdat de/een browser het correct rendert wil niet zeggen dat het klopt.
Ben eigenlijk nog steeds voor een andere opbouw, klinkt niet alsof de owner veel kaas heeft gegeten van interface design.