PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Modulo



ace23
08-03-2006, 09:19
Hallo,

ich habe ein kleines Problem mit der Ausgabe nebeneinander. Ich möchte immer nach 2 Werten eine neue Zeile beginnen, klappt auch soweit. Aber wenn ich nun nur einen Wert habe in einer neuen Zeile, dann hängt er kein /tr mit an.


$counter = 1;
while($result=$DB->fetch_array($query)) {
if($counter%2==1) {
eval ("\$database_row.= \"".templateinclude("tr_offen")."\";");
}
eval ("\$database_row.= \"".templateinclude("td_daten_auf_zu")."\";");
if($counter%2==0) {
eval ("\$database_row.= \"".templateinclude("tr_zu")."\";");
}
$counter++;
}

smofi
08-03-2006, 09:48
Hallo ace23,

ich sehe zwei Möglichkeiten:

1. Nach Verlassen der Schlaufe den Zählerstand prüfen. Wenn der Zähler ungerade ist, ist die Zeile vervollständigt worden, also sein lassen. Ist der Zähler hingegen gerade, ist die Zeile nicht vervollständigt worden, und man muss sie noch von Hand abschliessen.

2. Vor Betreten der Schlaufe die Anzahl Einträge im Array prüfen: Wenn die Anzahl ungerade ist, einen Dummyeintrag hinzufügen, der nur eine leere Ausgabe bewirkt.

fg Smofi :cool:

ace23
08-03-2006, 09:52
hm letzteres gefällt mir denke ich besser, weil dann auch die tabelle ordentlich wäre. Nungut dann werd ich mal schauen wie ich das hinbekomme.

Danke erstmal für die Tipps

ace23
08-03-2006, 10:24
hm ok also irgendwie bekomme ich das nicht hin.
Womit soll ich den bei nummer 2 vergleichen?
Wie bekomme ich denn in das array von der DB einen eintrag hinzu der leer sein soll?
Mit den count der zeilen der DB und dem $counter oder wie prüfe ich ob das gerade ist oder nicht?

undefined
08-03-2006, 11:12
Erstelle mit range() ein Array das die geforderte Menge der Inhalte enthält.
Nehme die Anzahl der der Datenmenge und merge. Danach wie gehabt durch die Schleife jagen.

ace23
08-03-2006, 22:49
Sorry das ich erst jetzt antworten kann,

meinst Du mit dem Array aus der DB mergen und dann erst die while schleife?

smofi
09-03-2006, 12:03
Hallo Ace,

das könnte eventuell so gehen:


...
$datenbank_array = mysql_query("SELECT * FROM bla;");
...
if (mysql_num_rows($datenbank_array) % 2 == 1)
{
// ein leerer dazu
$richtiges_array = array_merge($datenbank_array, array("dummy" => ""));
}

// Mit $richtiges_array weiterarbeiten
...


Ich kenne die Details Deiner Umgebung nicht. Sonst weiche eben zur Lösung 1 aus. Da musst nur ein if schreiben und ggf. den Zeilenabschluss ausgeben. Mir selber ist der Aufbau eines Arrays von der Datenbank wie im obigen Beispiel $datenbank_array auch nicht lupenrein klar.

ace23
10-03-2006, 10:39
hm leider geht das nicht weil:
Warning: array_merge() [function.array-merge]: Argument #1 is not an array

Hmhm so ein scheiss