PHP frage

09/16/2011 04:05 F4m0uZStYle#1
Halli hallo

ich hab ne frage zu einer gildenrangliste,und zwar:wenn ich den leader raus lesen will,zeigt er mir nur die ID des Leaders an.

meine frage jetzt:wie kann ich es so auslesen lassen das der name des Leader da steht und nicht die ID?
09/16/2011 04:11 AIR7#2
Bearbeite den SQL Query, dann wird's funktionieren.
09/16/2011 05:51 F4m0uZStYle#3
ja das schon kla,aber ich weiß nicht wie bzw was ich da eintragen soll


PHP Code:
<?php 
echo "<center><table border=\"0\">
    <tr>
    <td width=\"30\"><b><center>Platz</center></b></td>
    <td width=\"200\"><b><center>Name</center></b></td>
    <td width=\"30\"><b><center>Level</center></b></td>
    <td width=\"150\"><b><center>Punkte</center></b></td>
    <td width=\"60\"><b><center>Gewonnen</center></b></td>
    <td width=\"60\"><b><center>Unentschieden</center></b></td>
    <td width=\"60\"><b><center>Verloren</center></b></td>
    <td width=\"60\"><b><center>Reich</center></b></td>
    </tr>"
;
 include 
'inc/dbsettings.php';
    
$db    "player";
    
mysql_connect($dbhost$dbuser$dbpw) OR
    die(
"ERROR: Connection failed. ".mysql_error());        
    
mysql_select_db($db) OR
    die(
"ERROR: DB allready open. ".mysql_error());
$sql "SELECT * FROM guild ORDER BY ladder_point desc, exp desc";
      
$i "0" ;
 
$ergebnis mysql_query($sql);
while(
$row mysql_fetch_object($ergebnis))
   {
   
$i $i ;
    
$leader $row->master;
   echo 
"
  <tr>
    <th width=\"40\"><font color=#FFFFFF>
$i</font></th>
    <th width=\"200\"><font color=#FFFFFF>
$row->name</a></font></th>
    <th width=\"60\"><font color=#FFFFFF>
$row->level</font></th>
    <th width=\"150\"><font color=#FFFFFF>
$row->ladder_point</font></th>
    <th width=\"150\"><font color=#FFFFFF>
$row->win</font></th>
    <th width=\"150\"><font color=#FFFFFF>
$row->draw</font></th>
    <th width=\"150\"><font color=#FFFFFF>
$row->loss</font></th>";
    
$reich mysql_query("SELECT empire from player_index where pid1 = '$leader' OR pid2 = '$leader' OR pid3 = '$leader' OR pid4 = '$leader'");
    
$reich2 mysql_fetch_object($reich);
    
$empire $reich2->empire;
    if(
$empire == 1) {
                echo 
"<th width=\"150\"><img src=\"img/shinsoo.jpg\"></th></tr>";
                } elseif(
$empire == 2) {
                echo 
"<th width=\"150\"><img src=\"img/chunjo.jpg\"></th></tr>";
                } else {
                echo 
"<th width=\"150\"><img src=\"img/jinno.jpg\"></th></tr>";
                }

}
echo 
"</table></center>";
echo 
"<br>";
?>

vielleicht kann mir das jemand machen.
09/16/2011 06:13 •kяyteя•#4
PHP Code:
<?php 
echo "<center><table border=\"0\">
    <tr>
    <td width=\"30\"><b><center>Platz</center></b></td>
    <td width=\"200\"><b><center>Name</center></b></td>
    <td width=\"200\"><b><center>Leader</center></b></td>
    <td width=\"30\"><b><center>Level</center></b></td>
    <td width=\"150\"><b><center>Punkte</center></b></td>
    <td width=\"60\"><b><center>Gewonnen</center></b></td>
    <td width=\"60\"><b><center>Unentschieden</center></b></td>
    <td width=\"60\"><b><center>Verloren</center></b></td>
    <td width=\"60\"><b><center>Reich</center></b></td>
    </tr>"
;
 include 
'inc/dbsettings.php';
    
$db    "player";
    
mysql_connect($dbhost$dbuser$dbpw) OR
    die(
"ERROR: Connection failed. ".mysql_error());        
    
mysql_select_db($db) OR
    die(
"ERROR: DB allready open. ".mysql_error());
$sql "SELECT * FROM guild ORDER BY ladder_point desc, exp desc";
      
$i "0" ;
 
$ergebnis mysql_query($sql);
while(
$row mysql_fetch_object($ergebnis))
   {
   
$i $i ;
    
$leader $row->master;
   echo 
"
  <tr>
    <th width=\"40\"><font color=#FFFFFF>
$i</font></th>
    <th width=\"200\"><font color=#FFFFFF>
$row->name</a></font></th>
    <th width=\"60\"><font color=#FFFFFF>
$row->level</font></th>
    <th width=\"150\"><font color=#FFFFFF>
$row->ladder_point</font></th>
    <th width=\"150\"><font color=#FFFFFF>
$row->win</font></th>
    <th width=\"150\"><font color=#FFFFFF>
$row->draw</font></th>
    <th width=\"150\"><font color=#FFFFFF>
$row->loss</font></th>";
    
$reich mysql_query("SELECT empire from player_index where pid1 = '$leader' OR pid2 = '$leader' OR pid3 = '$leader' OR pid4 = '$leader'");
    
$reich2 mysql_fetch_object($reich);
    
$empire $reich2->empire;
    
$name mysql_query("SELECT name from player where id = '$leader'");
    if(
$empire == 1) {
                echo 
"<th width=\"150\"><img src=\"img/shinsoo.jpg\"></th></tr>";
                } elseif(
$empire == 2) {
                echo 
"<th width=\"150\"><img src=\"img/chunjo.jpg\"></th></tr>";
                } else {
                echo 
"<th width=\"150\"><img src=\"img/jinno.jpg\"></th></tr>";
                }

}
echo 
"</table></center>";
echo 
"<br>";
?>
Versuchs mal so...
Ich hoffe es funktioniert so...
Bin mir aber nicht sicher, bin da noch nicht ganz sooooooo
fit in PHP
09/16/2011 06:48 F4m0uZStYle#5
wenn ich es so wie du es gepostet hast,ersetze wird mir beim leader nix angezeigt
09/16/2011 06:56 iMaino#6
PHP Code:
<?PHP
  $CPSeite 
50;
  
$markierteZeile=0;
  if(isset(
$_GET['p'])) {
    if(!
checkInt($_GET['p']) || !($_GET['p']>0)) $aSeite 1;
    else 
$aSeite $_GET['p'];
  }
  else { 
$aSeite 1; }
  
  if(isset(
$_POST['suche']) && $_POST['suche']=='suchen') {
    if(!empty(
$_POST['gilde'])) {
      
$sqlCmd="SELECT id,name,sp,master,level,exp,ladder_point, rang
      FROM (
      
        SELECT id,name,sp,master,level,exp,ladder_point, @num := @num +1 AS rang
        FROM (
        
          SELECT id,name,sp,master,level,exp,ladder_point, @num :=0
          FROM player.guild
          ORDER BY level DESC, sp DESC, exp DESC, win DESC, ladder_point DESC
          
        ) AS t1
        
      ) AS t2
       
      WHERE name = '"
.mysql_real_escape_string($_POST['gilde'])."' LIMIT 1";
      
$sqlQry=mysql_query($sqlCmd,$sqlServ);
      if(
mysql_num_rows($sqlQry)>0) {
      
        
$getRang mysql_fetch_object($sqlQry);
        
$aSeite ceil($getRang->rang/$CPSeite);
        
$markierteZeile $getRang->rang;
      }
      
    }
    
  }
  
  
$sqlCmd "SELECT COUNT(*) as summeChars  
  FROM player.guild 
  ORDER BY level DESC, sp DESC, exp DESC, win DESC, ladder_point DESC"
;
  
  
$sqlQry mysql_query($sqlCmd,$sqlServ);
  
  
$getSum mysql_fetch_object($sqlQry);
  
$cSeite calcPages($getSum->summeChars,$aSeite,$CPSeite);
  
?>
<h2>Gilden Rangliste</h2>
<p><center><a href="index.php?s=ranking_chars">Charakter Rangliste</a></center></p>
<form action="index.php?s=ranking_gilden" method="POST">
  <table>
    <tr>
      <th class="topLine">Suche</th>
      <td class="thell" style="text-align:center;"><input type="text" name="gilde" maxlength="20" size="20"/></td>
      <td class="tdunkel" style="text-align:center;"><input type="submit" name="suche" value="suchen" maxlength="20" size="20"/></td>
    </tr>
  </table>
</form>
<?PHP
  $maxRange 
5;
  
$maxStep 15;
  if((
$aSeite-$maxRange)>0$sStart $aSeite-$maxRange;
  else 
$sStart 1;
  if((
$aSeite+$maxRange)<=$cSeite[0]) $sEnde $aSeite+$maxRange;
  else 
$sEnde $cSeite[0];
  
  echo 
'<table>
  <tr>
  <td class="tdunkel">'
;
  if((
$aSeite-$maxStep)>0) echo '<a href="index.php?s=ranking_gilden&p='.($aSeite-$maxStep).'">'.($aSeite-$maxStep).'</a> &laquo;';
  else echo 
'<a href="index.php?s=ranking_gilden&p=1">1</a> &laquo;';
  echo
'</td>';
  
  for(
$i=$sStart;$i<=$sEnde;$i++) {
    
$sKlasse = ($i==$aSeite) ? "topLine" "thell";
    echo
'<td class="'.$sKlasse.'" style="text-align:center;">';
    echo
'<a href="index.php?s=ranking_gilden&p='.$i.'">'.$i.'</a>';
    echo
'</td>';
  }
  
  echo
'<td class="tdunkel" style="text-align:right;">';
  if((
$aSeite+$maxStep)<=$cSeite[0]) echo '&raquo; <a href="index.php?s=ranking_gilden&p='.($aSeite+$maxStep).'">'.($aSeite+$maxStep).'</a>';
  else echo 
'&raquo; <a href="index.php?s=ranking_gilden&p='.$cSeite[0].'">'.$cSeite[0].'</a>';
  echo
'</td>';
  echo
'</table>';
?>
<table>
<tr>
  <th class="topLine">Platz</th>
  <th class="topLine">Name</th>
  <th class="topLine">Leader</th>
  <th class="topLine">Level</th>
  <th class="topLine">SP</th>
  <th class="topLine">EXP</th>
  <th class="topLine">Punkte</th>
</tr>
<?PHP
  $sqlCmd 
"SELECT id,name,sp,master,level,exp,ladder_point 
  FROM player.guild 
  ORDER BY level DESC, sp DESC, exp DESC, win DESC, ladder_point DESC 
  LIMIT "
.$cSeite[1].",".$CPSeite;
  
$sqlQry mysql_query($sqlCmd,$sqlServ);
  
$x=$cSeite[1]+1;
  while(
$getPlayers mysql_fetch_object($sqlQry)) {
    
$zF = ($x%2==0) ? "thell" "tdunkel";
    if(
checkInt($markierteZeile) && $markierteZeile==$x) { $zF "tmarkiert"; }
    echo 
"<tr>";
    echo 
"<td class=\"$zF\">".$x."</td>";
    echo 
"<td class=\"$zF\"><a href='index.php?s=guild&guild=".$getPlayers->id."'>".$getPlayers->name."</a></td>";
    echo 
"<td class=\"$zF\"><a href='index.php?s=char&char=".$getPlayers->master."'>".charname($getPlayers->master)."</a></td>";
    echo 
"<td class=\"$zF\">".$getPlayers->level."</td>";
    echo 
"<td class=\"$zF\">".$getPlayers->sp."</td>";
    echo 
"<td class=\"$zF\">".$getPlayers->exp."</td>";
    echo 
"<td class=\"$zF\">".$getPlayers->ladder_point."</td>";
    echo 
"</tr>";
    
    
$x++;
    
  }
?>
</table>
09/16/2011 07:46 F4m0uZStYle#7
das klappt irgenwie bei mir nicht er liest mir nur den platz und den namen der gilde aus der rest liest er nicht aus
09/16/2011 14:00 iMaino#8
Probiers jetzt nochmal, habs ein bisschen bearbeitet - bei mir gehts. Das Script ist von Howan.
09/17/2011 06:53 F4m0uZStYle#9
also wie gesagt wenn ich es nach deiner bearbeiteten gildenliste mache sieht es genau so bei mir aus.

[Only registered and activated users can see links. Click Here To Register...]

So,okay das mit dem auslesen kann ich hin bekommen aber dann wird wd nur beim leader die ID angezeigt und nicht der name.

Denke irgenwas stimmt nicht ganz mit der Leadernamen zeile.

Eventuel könnt sich ja wer dran versuchen