Hallo!
Ich bin gerade dabei mir PHP zu erlernen und meine Diplomacy-Seite PHP-basiert neu zu gestalten.
Momentan arbeite ich an einer Tabelle, in der von jeder Großmacht die Züge eingetragen werden sollen. Konkret sieht das so aus:
<?php
$request = mysql_query("SELECT * FROM history WHERE jahr = {$currentyear} AND phase = {$currentphase}");
$info = mysql_fetch_object($request);
...
?>
...
<tr>
<td class="moves"><img src="data/flag-ger.gif" width=35></td>
<td bgcolor="#CCCCCC">Deutschland</td>
<td class="moves"><?php echo nl2br($info->moves_germany);?></td>
<td class="moves"><?php echo nl2br($info->retreats_germany);?></td>
<td class="moves"><?php echo nl2br($info->adjustments_germany);?></td>
</tr>
<tr>
<td class="moves"><img src="data/flag-fra.gif" width=35></td>
<td bgcolor="#CCCCCC">Frankreich</td>
<td class="moves"><?php echo nl2br($info->moves_france);?></td>
<td class="moves"><?php echo nl2br($info->retreats_france);?></td>
<td class="moves"><?php echo nl2br($info->adjustments_france);?></td>
</tr>
<tr>
<td class="moves"><img src="data/flag-uk.gif" width=35></td>
<td bgcolor="#CCCCCC">Großbritannien</td>
<td class="moves"><?php echo nl2br($info->moves_england);?></td>
<td class="moves"><?php echo nl2br($info->retreats_england);?></td>
<td class="moves"><?php echo nl2br($info->adjustments_england);?></td> </tr>
<tr>
<td class="moves"><img src="data/flag-ita.gif" width=35></td>
<td bgcolor="#CCCCCC">Italien</td>
<td class="moves"><?php echo nl2br($info->moves_italy);?></td>
<td class="moves"><?php echo nl2br($info->retreats_italy);?></td>
<td class="moves"><?php echo nl2br($info->adjustments_italy);?></td> </tr>
<tr>
<td class="moves"><img src="data/flag-tur.gif" width=35></td>
<td bgcolor="#CCCCCC">Osmanisches Reich</td>
<td class="moves"><?php echo nl2br($info->moves_germany);?></td>
<td class="moves"><?php echo nl2br($info->retreats_germany);?></td>
<td class="moves"><?php echo nl2br($info->adjustments_germany);?></td> </tr>
<tr>
<td class="moves"><img src="data/flag-aus.gif" width=35></td>
<td bgcolor="#CCCCCC">Österreich-Ungarn</td>
<td class="moves"><?php echo nl2br($info->moves_germany);?></td>
<td class="moves"><?php echo nl2br($info->retreats_germany);?></td>
<td class="moves"><?php echo nl2br($info->adjustments_germany);?></td> </tr>
<tr>
<td class="moves"><img src="data/flag-rus.gif" width=35></td>
<td bgcolor="#CCCCCC">Russland</td>
<td class="moves"><?php echo nl2br($info->moves_germany);?></td>
<td class="moves"><?php echo nl2br($info->retreats_germany);?></td>
<td class="moves"><?php echo nl2br($info->adjustments_germany);?></td> </tr>
Und das funktioniert auch. Nun dachte ich mir, ich könnte das ganze ein wenig übersichtlicher gestalten. Immerhin sind ja die Ländernamen in einer anderen Datenbank gespeichert, und wenn ich auch das automatisieren könnte, wäre die Homepage auch für Varianten mit anderen Ländern geeigent.
Ich bin also auf folgendes gekommen:
<?php
$request = mysql_query("SELECT * FROM history WHERE jahr = {$currentyear} AND phase = {$currentphase}");
$info = mysql_fetch_object($request);
...
?>
...
<?php
$request2 = mysql_query("SELECT * FROM main");
while ($land = mysql_fetch_object($request2)) {
echo "<tr>";
echo "<td class=\"moves\"><img src=\"data/", $land->flag, "\" width=35></td>\n";
echo "<td bgcolor=\"#CCCCCC\">",$land->name_dt,"</td>\n";
echo "<td class=\"moves\">", nl2br($info->moves_{$land->name_en}),"</td>\n";
echo "<td class=\"moves\">", nl2br($info->retreats_{$land->name_en}),"</td>\n";
echo "<td class=\"moves\">", nl2br($info->adjustments_{$land->name_en}),"</td>\n";
echo "</tr>";
}
?>
Das funktioniert aber nicht, weil ich die Ländernamen aus Datenbank main anscheinend nicht in den Variablenname der Abfrage aus der Datenbank history einfügen kann.
Gibt es hier eine elegante Lösung?
lg
Martin