[gelöst] Row-Number für theme('table')
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-10376.jpg)
am 31.12.2010 - 17:41 Uhr in
Stehe auf dem Schlauch: würde gern in der fertigen Tabelle eine zusätzliche Spalte für die Zeilennummer haben. Nur wie?
<?php
function query_action($headers) {
// Ohne Eingabe in Suche keine Ausgabe
$i = 0; // Anzahl Erg.
if ( isset($_REQUEST['feld_sendtest']) ) {
$sql = query_stringComplete();
$results = db_query($sql); // Run the query
while ($fields = db_fetch_array($results)) { // Get the next result as an associative array
$results_array[] = $fields;
$i++;
}
$table_attributes = array('id' => 'query-results-table');
if (!empty($results_array)) {
print ($i > 1) ? "<h2>".$i." Suchergebnisse</h2>" : "<h2>".$i." Suchergebnis</h2>";
print theme('table', $headers, $results_array,$table_attributes); // Query-Ergebnis als Tabelle darstellen
print "<br>";
} else {
print "<h2>keine Suchergebnisse</h2>"."<br>";
}
} else {
print ''; // "bereit" oder "Suche eingeben"
}
}
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Baue die While-Schleife eine
am 31.12.2010 - 18:16 Uhr
Baue die While-Schleife eine Kleinigkeit um und passe den Header an:
<?php
while ($fields = db_fetch_array($results)) { // Get the next result as an associative array
$results_array[] = array_unshift($fields, $i++);
}
array_unshift($headers, "");
?>
Beste Grüße
Werner
Dann PHP-Fehler: warning:
am 31.12.2010 - 18:31 Uhr
Dann PHP-Fehler: warning: Invalid argument supplied for foreach() in […]/includes/theme.inc on line 1414.
Ok, hatte ich nicht getested.
am 31.12.2010 - 19:19 Uhr
Ok, hatte ich nicht getested. 2 mögliche Ursachen: Der Header muß mindestens ein Blank bekommen und/oder das Ablegen einer Integer in dem Fields-Array paßt nicht. Also füge erst mal ein Blank in die 2. Unshift Funktion ein. Wenn das nicht reicht, sehen wir weiter.
array_unshift($headers, " ");
Beste Grüße
Werner
Problem schein unshift im
am 31.12.2010 - 20:52 Uhr
Problem schein unshift im while-loop zu sein. Idee, warum genau?
So funktioniert es:
<?php
function query_action($headers, $sql) {
// Ohne Eingabe in Suche keine Ausgabe
if ( isset($_REQUEST['feld_sendtest']) ) {
$results_array_unshift = array();
$i_row = 1;
$sql = query_stringComplete();
$results = db_query($sql); // Run the query
while ($fields = db_fetch_array($results)) { // Get the next result as an associative array
$i_gesamt++;
$results_array_unshift = array_unshift($fields, $i_row++);
$results_array[] = $fields;
}
$table_attributes = array('id' => 'query-results-table');
array_unshift($headers, "#");
if (!empty($results_array)) {
print ($i_gesamt > 1) ? "<h2>".$i_gesamt." Suchergebnisse</h2>" : "<h2>".$i_gesamt." Suchergebnis</h2>";
print theme('table', $headers, $results_array, $table_attributes); // Query-Ergebnis als Tabelle darstellen
print "<br>";
} else {
print "<h2>keine Suchergebnisse</h2>"."<br>";
}
} else {
print ''; // "bereit" oder "Suche eingeben"
}
}
?>