alex s.: Problem mit SHOW STATUS

Hallo zusammen,

möchte gerne die infos aus der DB ausgeben, das mache ich folgendermaßen:

-------------------------------------

print "<table border='0' cellpadding='1' cellspacing='1'>";

require "config.php";
$link2 = mysql_connect($dbhost, $dbuser, $dbpass)
              or die ("Could not connect");
                mysql_select_db ($dbname)
              or die ("Could not select database");

$query2="SHOW STATUS";
               $result2 = mysql_query ($query2)
                   or die ("Show Status From $dbname failed");

while($line2 = mysql_fetch_array($result2))
      {
print "
<tr>
<td bgcolor='#7C9BCD'><font class='tdesign01'>Bytes received</td><td>" . $line2['Bytes_received'] . "</td>
</tr>
<tr>
<td bgcolor='#7C9BCD'><font class='tdesign01'>Bytes sent</td><td>" . $line2['Bytes_sent'] . "</td>
</tr>
<tr>
<td bgcolor='#7C9BCD'><font class='tdesign01'>Max used connections</td><td>" . $line2['Max_used_connections'] . "</td>
</tr>";
      }

print "</table><br><br>";

------------------------------------

Ergebnis
-----------------------------------------
(Ausgabe ca. 20 mal)

Bytes received
Bytes sent
Max used connections
-----------------------------------------

Ich erhalte das Ergebnis ca. 20mal, allerdings ohne Werte, wenn ich mir das gleiche im phpmyadmin ansehe, sehe ich für bytes_received nur einen wert, für bytes auch und max_used_connections eben auch.

wo ist mein fehler?

gruß alex

  1. Hi,

    $line2['Bytes_received']

    die Attribute heißen 'Variable_name' und 'Value', d.h. $line2 erhält diese beiden Werte als Index. SHOW STATUS selbst gibt die von dir genannten ca. 20 Zeilen zurück - so oft läuft dann auch deine Schleife.

    Da man SHOW STATUS m.W. nicht eingrenzen kann, musst du in der while-Schleife abfragen, ob $line2['Variable_name'] == 'Bytes_received'. Wenn das der Fall ist, $line2['Value'] ausgeben. Für die anderen Werte analog.

    P.S.: du solltest immer folgende Zeile an den Anfang deiner Scripte schreiben:

    error_reporting(E_ALL);

    Dann hätte PHP dir eine notice ausgegeben, nämlich dass 'Bytes_received' als Index im Array $line2 nicht definiert ist, was die Fehlersuche doch erheblich vereinfacht.

    Gruß,
    Andreas.

    1. Hi Andreas,

      vielen Dank für deine Tipps!
      Bist spitze!! ;-)

      ciao Alex