Array an Smarty

Elmo

Mitglied
Hi,

ich habe ein Problem. Ich würde gerne unten stehenden Code in Smarty als Array übergeben nur weis ich nicht wie man das realisieren könnte :confused:. Könnte mir jemand dabei vielleicht helfen?

Danke im vorraus.

PHP:
<?php 
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0' id='clan'>";

	$more_clans =0;
		
foreach ($pclans as $c_key => $value)
{
	$sql = "SELECT clan_full_name  FROM clan WHERE clan_id=$c_key";
	$result = mysql_query($sql, $mysql_access);
	$clan_info = mysql_fetch_array($result);			

	?>
		 <tr>
		   <td id='clan_big'>
			  Next Wars of <a href='clan_page.php?cid=?php echo $c_key."'> ". $clan_info['clan_full_name']; ?> </a>
		   </td>
		 </tr>
		 <tr>
		  <td>
			<table width=100%>
			<tr>
			  <td width=25%><strong>Opponent</strong></td>
			  <td width=20%><strong>Date</strong></td>
			  <td width=20%><strong>League</strong></td>
			  <td width=10% align=center><strong>War Status</strong></td>		  
			  <td width=10%><strong>Details</strong></td>
			  <td width=10%><strong>Comments</strong></td>
			</tr>
		<?php 
		$now=time();
		$sql = "SELECT * FROM war AS w, war_status AS ws WHERE w.war_war_status_code = ws.war_status_id AND (war_war_status_code=1 OR war_war_status_code=2 OR war_war_status_code=7) AND (war_challenger_id=$c_key OR war_opponent_id=$c_key) AND war_date > $now ORDER BY war_date ";
		$pendingwars_result = mysql_query($sql, $mysql_access);
		if(mysql_num_rows($pendingwars_result)==0)
		{
			echo "<tr><td colspan=8>";
			echo "There are no scheduled wars at this time.";
			echo "</td></tr>";
		}
		$war_counter = 0;
		$war_count = mysql_num_rows($pendingwars_result);
		echo "<form action=submit_avail.php method=POST>\n";
		echo "<input type=hidden name=war_count value=".$war_count.">";
		echo "<input type=hidden name=pid value=".$LOGIN_ID.">";
		echo "<input type=hidden name=cid value=".$c_key.">";
		while ($war_info = mysql_fetch_array($pendingwars_result))
		{
			$war_counter++;		
			echo "<tr>\n";
			if ($war_info['war_challenger_id'] == $c_key)
			{
				echo "<td align=left>";
				echo "<a href=clan_page.php?cid=".$war_info['war_opponent_id'].">".ClanTag($war_info['war_opponent_id']);
				echo " ".ClanName($war_info['war_opponent_id'])."</a></td>\n";
			}
			elseif ($war_info['war_opponent_id'] == $c_key)
			{
				echo "<td align=left>";
				echo "<a href=clan_page.php?cid=".$war_info['war_challenger_id'].">".ClanTag($war_info['war_challenger_id']);
				echo " ".ClanName($war_info['war_challenger_id'])."</a></td>\n";
			}
			$time_adjust=($LOGIN_OFFSET * 60 * 60);
			$war_date=date('D. M j, g:i A ',$war_info['war_date']+$time_adjust);
			echo "<td align=left>".$war_date."</td>\n";
			
			if ($war_info['war_league_id']==0)
			{
				if ($war_info['war_war_status_code']==7)
				{
					echo "<td align=left>Practice</td>";
				}
				else
				{
					echo "<td align=left>Friendly</td>";
				}
			}
			else
			{
				$sql_league = "SELECT league_long_name FROM league WHERE league_id=".$war_info['war_league_id'];
				$result_league = mysql_query($sql_league, $mysql_access);
				$league_info = mysql_fetch_array($result_league);
				echo "<td align=left>$league_info[0]</td>";
			}
	
			echo "<td align=center><a title='".$war_info['war_status_description']."'>".$war_info['war_status_description']."</a></td>";
	
			echo "<td align=center><center><a href=war.php?wid=";
			echo $war_info['war_id']."><img src='images/report.gif' border=0 alt='View war details'></a></font></td>";
			echo "<td align=center><center>";
			echo GetWarCommentCount($war_info['war_id'])."</font></td>";
			echo "</tr>";
		}
		echo "<tr><td align=center colspan=8><hr></td></tr>";
		echo "</table>";
		echo "</form>";
		$more_clans =1;
	}
 
Dort unten steht ein ganzes Skript und nicht nur ein kleiner Code.

Was für einen Sinn würde es bringen diesen an Smarty zu übergeben?
 
Ich will ja nicht alles in Smarty übergeben sondern nur die Variablen die dort geholt werden. Und dazu brauch man glaube ich ein Mehrdimensionales Array nur weis ich nicht wie man damit arbeitet.
 
Du kannst einfach die bei der mySQL-Abfrage erstellten arrays in ein weiteres array speichern ... da du die ja eh in einer Schleife ausführst. Da legst du vor der Schleife ein array und einen Zähler der bei null beginnt an :
PHP:
$daten = array();
$n = '0';

Dann in der Schleife kannst du einfach einen Zähler mitlaufen lassen . Am bessten als aller letztes nach der Zuweisung des Datenarrays in das grosse array.

PHP:
$n++
und dann einfach nach dem Erstellen des arrays aus der mySQL-querry so in das grosse array speichern:

PHP:
$daten[$n] = $clan_info;

Dann hast du ein mehrdimensionales array.



also:
PHP:
$daten = array();
$n = '0';

schleife(.....) {

    //sql abfrage und so weiter

    $daten[$n] = $clan_info;

    //.... weiterer code

    $n++ //ganz am ende der schleife
}
 
Zurück