2 Stimmen

Formatierung der MySQL-Datenausgabe

Ich konvertiere eine MySQL-Tabelle in eine HTML-Tabelle mit este PHP-Snippet, und es sieht ungefähr so aus [html]:

/----------------------------------------\
| Name | Subscribed           | Duration | <- Column names
|----------------------------------------|
| Bob  | 2011-08-20 04:07:01  | 60       |
|----------------------------------------| 
| Ben  | 2011-08-20 04:07:01  | 260      |
\----------------------------------------/
  1. Wie kann ich die Tabelle ohne Spaltennamen ausgeben (Name, Abonnement, Dauer), so dass sie mit Bob beginnt?
  2. Ist es möglich, dieses Datum in etwas wie dieses umzuwandeln: August 20, 2011 4:07:01?
  3. Die Dauer ist in Sekunden angegeben. Wie kann ich sie in PHP in Minuten umrechnen (Dauer (s)/60), so dass 1 statt 60 Sekunden angezeigt wird?

2voto

Shef Punkte 43517

Hier ist der Code, zugeschnitten auf Ihre Anforderungen:

// sending query
$result = mysql_query("SELECT * FROM {$table}");
if (!$result) {
    die("Query to show fields from table failed");
}

$fields_num = mysql_num_fields($result);

echo "<h1>Table: {$table}</h1>";
echo "<table border='1'>";
// printing table rows
while($row = mysql_fetch_assoc($result))
{
    echo "<tr>";

    // $row is array... foreach( .. ) puts every element
    // of $row to $cell variable
    foreach($row as $key => $cell){
        if($key == 'Subscribed'){
            $cell = date('F j, Y H:i:s', strtotime($cell)); // format date August 20, 2011 4:07:01
        } elseif($key == 'Duration'){
            $cell = $cell/60; // format time in minutes
        }
        echo "<td>$cell</td>";
    }

    echo "</tr>\n";
}
echo '</table>';

0voto

ComFreek Punkte 28122

1.) Löschen Sie die for-Schleife nach // printing table headers .

2.) Verwenden Sie Datum() y strtotime() für die Spalte "Abonniert" (die zweite, wenn Sie mysql_fetch_row() )

3.) Teilen Sie die dritte Spalte durch 60.

Aber ich würde vorschlagen, dass Sie mysqli_fetch_array() anstelle von mysqli_fetch_row() .

0voto

Michiel Punkte 7611

Was das Datum betrifft, versuchen Sie es so:

echo strftime("%F %d, %Y %g:%i:%S", strtotime($v["datum"])) ;

0voto

Kemal Fadillah Punkte 9680

Sie können diesen Code verwenden, um die Spaltennamen zu entfernen. Dies ist derselbe Code aus dem Link, den Sie gepostet haben, aber mit einigen entfernten Zeilen. Damit wird auch die Dauer in Minuten ausgedruckt.

<html><head><title>MySQL Table Viewer</title></head><body>
<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = 'lptm42b';

$database = 'sphinx';
$table = 'spheres';

if (!mysql_connect($db_host, $db_user, $db_pwd))
    die("Can't connect to database");

if (!mysql_select_db($database))
    die("Can't select database");

// sending query
$result = mysql_query("SELECT * FROM {$table}");
if (!$result) {
    die("Query to show fields from table failed");
}

echo "<h1>Table: {$table}</h1>";
echo "<table border='1'>";
// printing table rows
while($row = mysql_fetch_assoc($result))
{
    echo "<tr>";

    // $row is array... foreach( .. ) puts every element
    // of $row to $cell variable
    foreach($row as $field => $value)
    {
        if ($field === 'Duration')
        {
            $value = $value / 60;
        }
        echo "<td>$value</td>";
    }
    echo "</tr>\n";
}
mysql_free_result($result);
?>
</body></html>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X