Hilfe beim abändern einer PHP-Datei

ahnernoch

Mitglied
Hallo! habe folgendes Problem! ich hab gar keine ahnung von PHP und habe nun eine datei die soweit auch funktioniert! sie baut bei abfrage eine Tabelle auf. Links untereinander sind Namen und rechts davon mehrere Spalten mit Details. Da die Details aber sehr viel sind wird diese Tabelle riesig und passt somit nicht auf meine Homepage. Ich bräuchte nun jemand der fähig ist mir diese Datei so umzuschreiben das die Tabelle im prinzip Vertikal angelegt wird un nicht horinzontal. Sprich das oben von links nach rechts die namen sind und die details von oben nach unten. weiss noch nicht mal ob dies überhaupt geht oder viel arbeit ist! würde mich aber sehr freuen wenn sich jemand dieser Aufgabe anschließt! Zu sehen ist dies problem unter http://wow-bones.de/roster/addon.php?roster_addon_name=talented . Wenn nun links eine Class zB Krieger auswählt und einen Talent-Baum und nun "start" drückt bekommt man die Übergroße Tabelle. Zum verständniss ist hier noch der Link eines Screenshots (http://wow-bones.de/php_prob.jpg) und natürlich der Quelltext.....

PHP:
<?php

if ( !defined('ROSTER_INSTALLED') )
{
exit('Detected invalid access to this file!');
}
$rc = 0;
$content .= border('syellow','start',$_REQUEST['lsttree']).'<table class="bodyline" cellspacing="0">'."\n";
$content .= '<tr>'."\n";

$qry_xtabcols = "SELECT DISTINCT t.tree, ".
"CONCAT( ', SUM(IF(t.name = \"', t.name, '\", t.rank,0)) AS `', t.name, '`' ) AS strName, ".
"CONCAT( ', SUM(IF(t.name = \"', t.name, '\", t.maxrank,0)) AS `', t.name, '`' ) AS strMax ".
"from ".ROSTER_PLAYERSTABLE." p, ".ROSTER_TALENTSTABLE." t ".
"where t.member_id = p.member_id ".
"and t.tree = '".($_REQUEST['lsttree']).
"' and p.class = '".($_REQUEST['lstclass']).
"' order by t.tree, ".
"CONCAT( ', SUM(IF(t.name = \"', t.name, '\", t.rank,0)) AS `', t.name, '`' ), ".
"CONCAT( ', SUM(IF(t.name = \"', t.name, '\", t.rank,0)) AS `', t.name, '`' )";

$rslt_xtabcols = $wowdb->query($qry_xtabcols) or die_quietly($wowdb->error(),'Database Error',basename(__FILE__),__LINE__,$qry_xtabcols);
if ($roster_conf['sqldebug'])
{
$content .= ("<!-- $qry_xtabcols -->\n");
}
$xtabcols = "";
$xtabcolsmax = "";
$myColCounter = 3;
$wowdb->free_result(rslt_xtabcols);
while($row_xtabcols = $wowdb->fetch_array($rslt_xtabcols))
{
$xtabcols .= $row_xtabcols["strName"];
$xtabcolsmax .= $row_xtabcols["strMax"];
++$myColCounter;
}

$qry_xtab = "select p.`name` , p.`level` , p.`server` ".$xtabcols.
" from ".ROSTER_PLAYERSTABLE." p, ".ROSTER_TALENTSTABLE." t ".
"where t.member_id = p.member_id ".
"and t.tree = '".($_REQUEST['lsttree']).
"' and p.class = '".($_REQUEST['lstclass'])."'";

if ( isset($_REQUEST["txtminlvl"]) AND isset($_REQUEST["txtmaxlvl"]))
$qry_xtab .= " and (p.level BETWEEN '".$_REQUEST["txtminlvl"]."' and '".$_REQUEST["txtmaxlvl"]."')";
elseif ( isset($_REQUEST["txtminlvl"]) AND !isset($_REQUEST["txtmaxlvl"]))
$qry_xtab .= " and (p.level >= '".$_REQUEST["txtminlvl"]."')";
elseif ( !isset($_REQUEST["txtminlvl"]) AND isset($_REQUEST["txtmaxlvl"]))
$qry_xtab .= " and (p.level <= '".$_REQUEST["txtmaxlvl"]."')";

$qry_xtab .= " group by p.name , p.level , p.server";
$rslt_xtab = $wowdb->query($qry_xtab) or die_quietly($wowdb->error(),'Database Error',basename(__FILE__),__LINE__,$qry_xtab);

$qry_xtabmax = "select p.`name` , p.`level` , p.`server` ".$xtabcolsmax.
" from ".ROSTER_PLAYERSTABLE." p, ".ROSTER_TALENTSTABLE." t ".
"where t.member_id = p.member_id ".
"and t.tree = '".($_REQUEST['lsttree']).
"' and p.class = '".($_REQUEST['lstclass'])."'";
if ( isset($_REQUEST["txtminlvl"]) AND isset($_REQUEST["txtmaxlvl"]))
$qry_xtabmax .= " and (p.level BETWEEN '".$_REQUEST["txtminlvl"]."' and '".$_REQUEST["txtmaxlvl"]."')";

$qry_xtabmax .= " group by p.name , p.level , p.server";
$rslt_xtabmax = $wowdb->query($qry_xtabmax) or die_quietly($wowdb->error(),'Database Error',basename(__FILE__),__LINE__,$qry_xtabmax);

$numfields = mysql_num_fields($rslt_xtab);
if ($roster_conf['sqldebug'])
{
$content .= ("<!-- $qry_xtab -->\n");
$content .= ("<!-- $qry_xtabmax -->\n");
}

$content .= '<th class="membersHeader"> '.$wordings[$roster_conf['roster_lang']]['name'].' </th>'."\n";
for ($i=3;$i<$numfields;$i++)
{
$row_xtabheader = mysql_fetch_field($rslt_xtab,$i);
$content .= '<th class="membersHeader" style="white-space:normal;"> '.$row_xtabheader->name.' </th>'."\n";
}
$content .= '</tr>';

// Increment counter so rows are colored alternately
++$rc;

$table_cell_start = '<td class="membersRow'.(($rc%2)+1).'" align="center" valign="middle">';

while(($row_xtab = $wowdb->fetch_array($rslt_xtab)) && ($row_xtabmax = $wowdb->fetch_array($rslt_xtabmax)))
{
$content .= '<tr>'."\n";
if ($row_xtab["server"])
{
if ($addon_conf['talented']['popchar'] == 1)
{
$content .= $table_cell_start.' <a href="javascript:void(0)"'.
'onClick="w = window.open(\'char.php?name='.$row_xtab['name'].'&server='.$row_xtab['server'].
'&action=character\',\'PopUp\',\'width=650,height=750,left=200,top=200,screenX=200,screenY=200,fullscreen=no,toolbar=no,status=no,menubar=no,scrollbars=yes,resizable=yes,directories=no,location=no\'); return true;">'.
$row_xtab['name'].'</a> ('.$row_xtab['level'].') </td>';
} else {
$content .= $table_cell_start.' <a href="char.php?name='.$row_xtab['name'].'&server='.$row_xtab['server'].'&action=character">'.$row_xtab['name'].'</a> ('.$row_xtab['level'].') </td>';
}
} else {
$content .= $table_cell_start.' '.$row_xtab['name'].' ('.$row_xtab['level'].') </td>';
}
$i = 3;
while ( $i < $numfields )
{
$content .= $table_cell_start.' ';
if( $row_xtab[$i] == $row_xtabmax[$i] )
{
$content .= '<span style="color: green">';
}
elseif( $row_xtab[$i] < $row_xtabmax[$i] && $row_xtab[$i] > 0 )
{
$content .= '<span style="color: yellow">';
}
elseif( $row_xtab[$i] == 0 )
{
$content .= '<span style="color: white">';
}
$content .= $row_xtab[$i].' / '.$row_xtabmax[$i].'</span> </td>';
++$i;
}
$content .= '</tr>';
}
$content .= '</table>'.border('syellow','end');
$wowdb->free_result($rslt_xtab);

?>
 
Ich stell´s mir jetzt nicht soo stresig vor das Ding umzuschreiben, aber so ganze ohne Kommentare wird´s etwas schwierig durchzublicken, insbesondere da man den Code nicht testen kann...wenn du dich nicht mit PHP auskennst, wer hat dir denn dann das Ding geschrieben? Wär halt fast besser sich an den zu wenden, da es für den wahrscheinlich ne Arbeit von 10 min wäre.
Hast du irgendwo noch ne Doku zu dem Code?
 
Zurück