Ik heb een systeem waarbij de spelers worden gecheckt op aanwezig- en afwezigheid.


<img src="images/subteksten/trainingsopkomst.jpg" />
<br />
<?php
// Gemaakt door Harm Wesselink
include ('cms/training/training_config.php');

mysql_connect($host,$user,$password) or die(mysql_error());
mysql_select_db($txt_db_name);

$alleTrainingen = mysql_query ( "SELECT training_id FROM trainingen" );
$aantalTrainingen = mysql_num_rows ( $alleTrainingen );
$alleSpelers = mysql_query ( "SELECT spelerid FROM spelers" );
$aantalSpelers = mysql_num_rows ( $alleSpelers );
?>
<TABLE width="100%" BORDER="0" CELLPADDING="2" CELLSPACING="2">
<TR>
<TD width="250" align="left"><b>Spelers</b></TD>
<TD width="60"><b>Aanwezig</b></TD>
<TD width="60"><b>Afwezig</b></TD>
</TR>
<?php
	$query_2 = "SELECT * FROM `spelers`";
	$sql_2 = mysql_query($query_2) or die ( mysql_error( ) );
		while($rij_2 = mysql_fetch_object($sql_2)){
	$spelerid = $rij_2->spelerid;
	$spelernaam = $rij_2->spelernaam;
	$spelernummer = $rij_2->spelernummer;
?>
<TR>
<TD width="250">
<?php echo $spelernummer ?>. <?php echo $spelernaam ?></TD>
<TD width="60" align="center">
<?php
$wedstrijden = mysql_query ( "SELECT id FROM trainingen_spelers WHERE spelerid = '" . $rij_2->spelerid . "' ORDER BY id ASC ");

$aantalAanwezig = mysql_num_rows ( $wedstrijden );
$aantalAfwezig = $aantalTrainingen - $aantalAanwezig;
 
echo '<b>'.$aantalAfwezig.'</b>';
echo "</TD><TD width=\"60\" align=\"center\">";
echo ''.$aantalAanwezig.'';
echo "</TR></TD>";
?>

<?php
}
?>
</TABLE>
<br /><img width=455 height=1 src=images/systeem/lijn.png><br />
<table>
<?php
	$query_2 = "SELECT * FROM `spelers` ORDER BY spelernummer ASC";
	$sql_2 = mysql_query($query_2) or die ( mysql_error( ) );
		while($rij_2 = mysql_fetch_object($sql_2)){
	$spelerid = $rij_2->spelerid;
	$spelernaam = $rij_2->spelernaam;
	$spelernummer = $rij_2->spelernummer;
?>
<?php
}
?>
<TABLE width="100%" BORDER="0" CELLPADDING="2" CELLSPACING="2">
<TR>
<TD width="250" align="left"><b>Training</b></TD>
<TD width="60"><b>Aanwezig</b></TD>
<TD width="60"><b>Afwezig</b></TD>
</TR>
<?php
	$query_1 = "SELECT * FROM `trainingen` ORDER BY datum ASC";
	$sql_1 = mysql_query($query_1) or die ( mysql_error( ) );
		while($rij_1 = mysql_fetch_object($sql_1)){
	$training_id = $rij_1->training_id;
	$datum = $rij_1->datum;
?>
<TR>
<TD width="" align="left">
<a href="?id=training&ga=trainingsopkomst&bekijk=<?php echo $training_id ?>#blijf"><?php echo $datum ?></a></TD>
<TD width="60" align="center">
<?php
$spelers = mysql_query ( "SELECT id FROM trainingen_spelers WHERE training_id = '" . $rij_1->training_id . "'");
 
$aantalAanwezig = mysql_num_rows ( $spelers );
$aantalAfwezig = $aantalSpelers - $aantalAanwezig;
 
echo ''.$aantalAfwezig.'';
echo "</TD><TD width=\"60\" align=\"center\">";
echo ''.$aantalAanwezig.'';
echo "</TR></TD>";
?>
</TD></TR>
<?php } ?>
</TABLE>
<table>
<?php
	if($_GET['bekijk'] == ''){
		echo '';
}
else {
		echo '<br /><img width=455 height=1 src=images/systeem/lijn.png><br />';
$training = mysql_query ( "SELECT datum FROM trainingen WHERE training_id = '" . $_GET[ 'bekijk' ] . "'");  
$aTraining = mysql_fetch_assoc ( $training ); 
echo '<br><b>Training #', $_GET[ 'bekijk' ], ' - ', $aTraining[ 'datum' ], '</b><br>'; 
$spelers_aanwezig = mysql_query ( "SELECT spelerid FROM trainingen_spelers WHERE training_id = '" . $_GET[ 'bekijk' ] . "'" ); 
$aanwezig = array(); 
while ( $row = mysql_fetch_assoc ( $spelers_aanwezig ) ) { 
  $aanwezig[] = $row[ 'spelerid' ]; 
} 
$spelers = mysql_query ( "SELECT spelerid, spelernaam FROM spelers" ); 
while ( $speler = mysql_fetch_assoc ( $spelers ) ) { 
  if( in_array ( $speler[ 'spelerid' ], $aanwezig ) ){ 
    	echo '<font color="red">', $speler[ 'spelernaam' ], '</font><br>'; 
  } else { 
    	echo '<font color="green">', $speler[ 'spelernaam' ], '</font><br>'; 
  		}   
	}
}
?>
</table>


Ik wil dat de speler die het vaakst aanwezig is geweest boven aan komt. Maar dat kan nu dus niet omdat later pas wordt gekeken hoevaak iemand aanwezig is geweest door een simpele rekensom.

Iemand die mij kan helpen?
Ik denk dat je richting ajax moet gaan kijken..
Wat heeft dat nou weer met Ajax te maken?
Je zult iets moeten doen met JOINS in je eerst query.
Joinen ja, maar dat is een ding wat ik dus niet kan. En ook niet via php.net KAN leren.
Kijk hier eens naar en pas het eventueel aan je wensen aan:

SELECT
    spelers.*,
    COUNT(trainingen.*) AS aantal_aanwezig
  FROM
    spelers,
    trainingen_spelers AS trainingen
  WHERE
    trainingen.spelerid = speler.id
  GROUP BY
    trainingen.spelerid
  ORDER BY
    aantal_aanwezig DESC
Sorry! Wrong post.
PHP Scripter op 17/01/2010 16:37:00

Joinen ja, maar dat is een ding wat ik dus niet kan. En ook niet via php.net KAN leren.
Zeg niet meeteen ik KAN het NIET, zoek naar tutorials en vraag eerder hier hulp. Ga niet hele bakken met data over halen uit MySQL en die processen/sorteren/verwerken in php.

John D, dit topic is al heel erg oud, en ik plaatste er prongelijk een bericht in.

Reageren