Goeden dag,

ik probeer een output te genereren op basis van gegevens vanuit de database.
op zich gaat mij dit redelijk af.
Ik loop alleen tegen het volgende aan

ik werk met 2 tabellen.
links komen de users te staan met 2 andere gegevens.
En aan de rechter kant komen x aantal runs met datum te staan.

Voorbeeld


Als ik nu de rechter kant met gegevens vul dan klopt het niet meer.


Dit is wat ik gebruik. P.s het ziet er nu niet mooi uit. Opmaak wordt aangewerkt waneer ik dit werkend heb.

<?php
				$query = $db->query('
					SELECT 
						SUM(gold_sended) AS gold_sended1,
						gold_swap_id,
						gold_sended,
						user_id,
						week,
						google_users.oauth_uid,
						google_users.portal_name,
						gold_swap_value.id,
						gold_swap_value.gold_swap_value
					FROM
						gold_sended,
						google_users,
						gold_swap_value
					WHERE
						(gold_swap_id = "'.$db->real_escape_string($_GET['a']).'")
					AND
						(week = "'.$week.'")
					AND
						(gold_swap_id = gold_swap_value.id)
					AND
						(gold_sended.user_id = google_users.oauth_uid) GROUP BY google_users.portal_name');
						$i = 0;
						?>
<div class="block">
        <div class="block-bot">
          <div class="head">
            <div class="head-cnt">
              <h3>User Swap Values:</h3>
              <div class="cl">&nbsp;</div>
            </div>
          </div>
          <div class="row-articles articles">
            <div class="cl">&nbsp;</div>
			
			<div class="article">
              <div class="cl">&nbsp;</div>
				<!-- Content HERE-->
				<div style="width:650px; overflow: hidden;">
					<div style="width:620px; background-color:#000; float:left; overflow:auto;">
					<table width="100%" border="1" style="border-collapse: collapse; ">
					<tr>
						<td>
							<table width="50%" border="1" style="border-collapse: collapse; ">
							<tr>
								<td>Name:</td>
								<td>Remaining:</td>
								<td>Total:</td>
							</tr>
							<?php
							$i = 1;
							while($res = $query->fetch_assoc())
							{
								echo '<tr>
								<td>'.$res['portal_name'].'</td>
								<td>'.number_format($res['gold_swap_value'] - $res['gold_sended1']).'</td>
								<td>'.number_format($res['gold_sended1']).'</td>';
								$i++;
								$account = $res['oauth_uid'];
							}
							?>
							</tr>
							</table>
						</td>
						<td>&nbsp;</td>
						<td>
							<table width="100%" border="1" style="border-collapse: collapse; ">
							<tr>
							<?php
							for($i = 1; $i < 50; $i++)
							{
								echo '<td>Run '.$i.':</td><td>Date</td>';
							}
							?>
							</tr>
							<tr>
							<?php
							$query1 = $db->query('
							SELECT 
								gold_sended,
								gold_swap_id,
								user_id,
								week,
								date,
								google_users.oauth_uid,
								google_users.portal_name
							FROM
								gold_sended,
								google_users
							WHERE
								(gold_swap_id = "'.$db->real_escape_string($_GET['a']).'")
							AND
								(week = "'.$week.'")
							AND
								(google_users.oauth_uid = "'.$account.'")');
							while($res1 = $query1->fetch_assoc())
							{
								echo '<td>'.$res1['gold_sended'].'</td><td>'.$res1['date'].'</td>';
								//echo '<td>Test</td><td>Datum</td>';
							}
							?>
					
							</tr>
							</table>
						</td>
					</tr>
					</table>
					</div>
				</div>
            </div>

            <div class="article last-article">
              <div class="cl">&nbsp;</div>
              
              <div class="cl">&nbsp;</div>
            </div>
            <div class="cl">&nbsp;</div>
          </div>
        </div>
      </div>


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.

Met vriendelijke groet,

Thomas de Vries.
Zo even een update.
Code heb ik nu werkend gekregen zoals het bedoelt is. Op 1 ding nu na haha.

code zoals die nu is

<?php
$Portal_Name = array();
$query = $db->query('SELECT * FROM register_gold_swap WHERE register_gold_swap.gold_swap_id = "'.$db->real_escape_string($_GET['a']).'" AND (status = "1")');
$sum = 0;
while($res = $query->fetch_assoc())
{
	$query1 = $db->query('SELECT * FROM gold_sended WHERE user_id = "'.$res['user_id'].'" AND gold_swap_id = "'.$res['gold_swap_id'].'"');
	while($res1 = $query1->fetch_assoc())
	{
		//echo $res1['gold_sended'].'<br />';
		$total[] = array($res1['gold_sended'], $res1['user_id']);
	}
	$query3 = $db->query('SELECT * FROM google_users WHERE oauth_uid = "'.$res['user_id'].'" ORDER BY portal_name ASC');
	$res3 = $query3->fetch_assoc();
	$PortalName[] = array($res3['portal_name'],$res3['oauth_uid']);
}
?>
<div class="block">
        <div class="block-bot">
          <div class="head">
            <div class="head-cnt">
              <h3>User Swap Values:</h3>
              <div class="cl">&nbsp;</div>
            </div>
          </div>
          <div class="row-articles articles">
            <div class="cl">&nbsp;</div>
			
			<div class="article">
              <div class="cl">&nbsp;</div>
				<!-- Content HERE-->
				<div style="width:640px; overflow: hidden; background-color:;">
					<div class="users_data" style="width:300px; background-color:; float:left; ">
					<table width="100%" border="1" style="border-collapse:collapse;">
						<tr>
							<td>Name:</td>
							<td>Remaining:</td>
							<td>Total:</td>
						<?php
						foreach($PortalName AS $data)
						{
							echo '<tr><td>'.$data[0].'</td>';
							
							$countQuery = $db->query('SELECT *, SUM(gold_sended) as total_gold FROM gold_sended WHERE gold_sended.user_id = "'.$data[1].'" AND (gold_swap_id = "'.$db->real_escape_string($_GET['a']).'") AND (week = "29") ORDER BY date DESC');
							$count = $countQuery->fetch_assoc();
							$queryA = $db->query('SELECT * FROM gold_swap_value WHERE id = "'.$db->real_escape_string($_GET['a']).'"');
							$resa = $queryA->fetch_assoc();
							
							$calcRemaining = $resa['gold_swap_value'] - $count['total_gold'];
							if($calcRemaining == $resa['gold_swap_value']) {
								$remaining = '<td bgcolor="red"><font color="black">'.number_format($resa['gold_swap_value']).'<font></td>';
							} else if( $calcRemaining <= 0 ) {
								$remaining = '<td bgcolor="orange"><font color="black">0</font></td>';
							} else {
								$remaining = '<td bgcolor="orange"><font color="black">'.number_format($calcRemaining).'</font></td>';
							}
							
							echo $remaining.'<td>'.number_format($count['total_gold']).'</td>';
						}
						?>
						</tr>
					</table>
					</div>
					<div class="users_content" style="width:320px; float:right; background-color:; overflow:auto;">
					<table width="100%" border="1" style="table-layout:fixed; border-collapse:collapse;">
						<tr>
						<?php
						for($i = 1; $i < 50; $i++)
						{
							echo '
								<td width="100px">Run '.$i.':</td>
								<td width="150px">Date</td>';
								
						}
						?>
						</tr>
						<tr>
						<?php
						$j=0;
						foreach($total as $data)
						{
							$countQuery = $db->query('SELECT *, COUNT(gold_sended) as total_runs FROM gold_sended WHERE gold_sended.user_id = "'.$data[1].'" AND (gold_swap_id = "'.$db->real_escape_string($_GET['a']).'") AND (week = "29") ORDER BY date DESC');
							$count = $countQuery->fetch_assoc();
							if($j % $count['total_runs'] == 0 && $j > 0) {
								echo '</tr><tr>';
							}
							echo '<td>'.number_format($data[0]).'</td><td bgcolor="Yellow"><font color="#000">'.$count['date'].'</font></td>';
							$j++;
						}
						?>
						</tr>
					</table>
					</div>
					<!--OTHER_DIV-->
					<div style="clear:both;"></div>
				</div>
            </div>

            <div class="article last-article">
              <div class="cl">&nbsp;</div>
              
              <div class="cl">&nbsp;</div>
            </div>
            <div class="cl">&nbsp;</div>
          </div>
        </div>
      </div>


Ouput:


Zoals jullie zien is er 1 gebruiker die nog niks heeft verzonden. Nu dien ik dus te controleren of die user_id wel voorkomt in de tabel gold_sended. Zo niet dan lege rij.

Reageren