Hoi,

ik was bezig met het maken van een overzicht van verschillende waardes voor een spel.
De waardes moesten verticaal opgesteld worden, er moet dus steeds voor elke waarde een tabel cel aangemaakt worden.
Dit doe ik door middel van de functie information().
Helaas werkt dit niet, ik denk dat dit komt omdat mysql_fetch_assoc() maar één keer kan worden aangeroepen.

Heeft iemand hier ervaring mee of een oplossing voor?
NOTE: de HTML is verkort!


<?php

function resources()
{
	$con = mysql_connect('localhost', 'root', 'password') or die(mysql_error());
	mysql_select_db('matman_test', $con) or die(mysql_error());
	$query = mysql_query("SELECT * FROM resources");
	if(mysql_num_rows($query) != 0)
	{
		session_start();
		$_SESSION['count'] = 0;
		function information($query)
		{	$data = null;
			$dataa = array('Currency', 'Iron', 'Iron2', 'Grain', 'Grain2', 'WQ1(LC)', 'WQ1(G)', 'WQ2(LC)', 'WQ2(G)', 'WQ3(LC)', 'WQ3(G)', 'WQ4(LC)', 'WQ4(G)', 'WQ5(LC)', 'WQ5(G)', 'GQ1(LC)', 'GQ1(G)', 'GQ2(LC)', 'GQ2(G)', 'GQ3(LC)', 'GQ3(G)', 'GQ4(LC)', 'GQ4(G)', 'GQ5(LC)', 'GQ5(G)', 'FQ1(LC)', 'FQ1(G)', 'FQ2(LC)', 'FQ2(G)', 'FQ3(LC)', 'FQ3(G)', 'FQ4(LC)', 'FQ4(G)', 'FQ5(LC)', 'FQ5(G)');
			$word = $dataa[$_SESSION['count']];
			while($data = mysql_fetch_assoc($query))
			{
				if($data[$word] == "" || $data[$word] == 0)
				{
					echo '<td class="empty">&nbsp;</td>';
				}
				else
				{
					echo '<td class="full">'.$data[$word].'</td>';
				}
				$_SESSION['count']++;
			}
			return;
		}
		echo '
		<table cellspacing="0" border="0" class="content">
		<tr>
			<td colspan="3">Land:</td>';
			while($data2 = mysql_fetch_assoc($query))
			{
				echo '<td class="full">'.$data2['Country'].'</td>';
			}
			echo '
		</tr>
		<tr>
			<td align="center">Currency</td>
			<td colspan="2">LC in G</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td rowspan="2">Iron:</td>
			<td>&nbsp;</td>
			<td>LC</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td>&nbsp;</td>
			<td>G</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td align="center" rowspan="10">Weapons</td>
			<td rowspan="2">Q1</td>
			<td>LC</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td>G</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td rowspan="2">Q2</td>
			<td>LC</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td>G</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td rowspan="2">Q3</td>
			<td>LC</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td>G</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td rowspan="2">Q4</td>
			<td>LC</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td>G</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td rowspan="2">Q5</td>
			<td>LC</td>';
			information($query);
			echo '
		</tr>
		<tr>
			<td>G</td>';
			information($query);
			echo '
		</tr>
		</table>
		';
		//$_SESSION['count'] = 0;
	}
	else
	{
		die('Er staat niks in de database!');
	}
}

?>
<html>
<head>
<title>e-sim resources module</title>
<link rel="stylesheet" href="css/stylesheet.css" media="screen" />
</head>
<body>
<?php

resources();

?>
<br />
<a href="insert.php">Invoegen</a>
</body>
</html>


Heb hem even getest, dit is het resultaat:


Met code:

<?php
function information($field)
{
    global $records_array;
    foreach($records_array as $record)
    {
        echo '<td class="full">'.$record['Country'].'</td>';
        if($record[$field] == "" || $record[$field] == 0)
        {
            echo '<td class="empty">&nbsp;</td>';
        }
        else
        {
            echo '<td class="full">'.$record[$field].'</td>';
        }
    }
}

function resources()
{
    global $records_array;
    $field_array = array('Currency', 'Iron', 'Iron2', 'Grain', 'Grain2', 'WQ1(LC)', 'WQ1(G)', 'WQ2(LC)', 'WQ2(G)', 'WQ3(LC)', 'WQ3(G)', 'WQ4(LC)', 'WQ4(G)', 'WQ5(LC)', 'WQ5(G)', 'GQ1(LC)', 'GQ1(G)', 'GQ2(LC)', 'GQ2(G)', 'GQ3(LC)', 'GQ3(G)', 'GQ4(LC)', 'GQ4(G)', 'GQ5(LC)', 'GQ5(G)', 'FQ1(LC)', 'FQ1(G)', 'FQ2(LC)', 'FQ2(G)', 'FQ3(LC)', 'FQ3(G)', 'FQ4(LC)', 'FQ4(G)', 'FQ5(LC)', 'FQ5(G)');
    $con = mysql_connect('localhost', 'root', 'password') or die(mysql_error());
    mysql_select_db('matman_test', $con) or die(mysql_error());
    $query = mysql_query("SELECT * FROM resources");
    if(mysql_num_rows($query) != 0)
    {
        $records_array = array();
        while($data = mysql_fetch_assoc($query))
        {
            $records_array[] = $data;
        }
        echo '
        <table cellspacing="0" border="0" class="content">
        <tr>
            <td colspan="3">Land:</td>';
            foreach($records_array as $record)
            {
                echo '<td class="full">'.$record['Country'].'</td>';
            }
            echo '
        </tr>
        <tr>
            <td align="center">Currency</td>
            <td colspan="2">LC in G</td>';
            information($field_array[0]);
            echo '
        </tr>
         <tr>
            <td align="center">Iron</td>
            <td colspan="2">LC</td>';
            information($field_array[1]);
            echo '
        </tr>
		</table>';
// enzovoort
	}
}
?>
<html>
<head>
<title>e-sim resources module</title>
<link rel="stylesheet" href="css/stylesheet.css" media="screen" />
</head>
<body>
<?php

resources();

?>
<br />
<a href="insert.php">Invoegen</a>
</body>
</html>


De tabel wordt niet helemaal goed weergegeven,
hij zet steeds het land erbij? :S

Zou je ook eventueel een toelichting bij je code kunnen geven?
Aardig ingewikkeld :P
Ha, regel 7 moet weg.
Deze dus:
echo '<td class="full">'.$record['Country'].'</td>';
Hij doet het! :D
Nu moet ik alleen nog wat van de code snappen;
zou je me kunnen helpen? :-)
Regel 28-32: Daar zet ie alle gevonden records uit de database in een array().
Regel 37-40: Daar loop je door het array en echo je alleen de Country's.
Verder spring je naar de function information met de veldnaam als parameter. In de function loop je weer helemaal door het array, maar daar echo je alleen de waarden die bij de veldnaam horen.
Ik hoop dat je het een beetje snapt.
Ja ik snap het nu,
kwam een aantal dingen tegen die ik nog nooit heb gebruikt,
maar die ik zeker ga toepassen!

Hartstikke bedankt voor de hulp,
en een fijn weekend toegewenst!
Matthijs Veldhuizen op 11/11/2011 21:05:09

en een fijn weekend toegewenst!


Jij ook en succes.

Reageren