Ich habe eine Tabelle die ich bisher ohne PHP und einfach nur mit HTML und einem Style-Sheed umgestzt haben. In derser Tabelle habe ich einen von Zeile zu Zeile unterschiedliche Ausrichtungen dargestellt.
tr.fantasie-uebersicht:nth-child(2n+3) { /* dritte ungerade /
text-align: left;
height: 200px;
background-image: url(„…/Images/redrulr1.gif“);
background-repeat: no-repeat;
background-position: center 5px;
/ border: 1px solid #60FF00; */
}[/CODE]Nun möchte ich gern MySQL für den Inhalt verwenden. Doch das Layout beibehalten.
Das klappt auch bis auf die Ausrichtung. Was meiner Einschätzung daran liegt das immer nur von der ersten Zeile ausgegangen wird. Und die 2 und 3 Zeile wegfallen.
Sprich der Aufbau wird Zeile 1,1,1,1,1,1… und nicht 1,2,3, oder erste, gerade, ungerade,
Wie kann kann ich php und sql also klarmachen das nicht immer von vorn begonnen wird?
[PHP]<?php
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname LIKE 'A%' OR Storyname LIKE 'B%' OR Storyname LIKE 'C%' ");
while($row = mysql_fetch_object($ergebnis))
{
echo '
Schön das hat so weit geklappt und das ich das schließende hinter die Schleife packen muss ist mir dann auch klar geworden.
Ich würde nun gern in die Schleife noch if - Bedingungen für manche Werte eintragen
z.B. für Zweitname
Ich habe es so gemacht CODE und bekomme auch keine Fehlermeldung doch müsse ich im Ergebniss mal einen eintrag und mal keinen Eintrag angezeigt bekommen. Also beide Möglichkeiten.
[PHP]
…
<?php
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname LIKE 'A%' OR Storyname LIKE 'B%' OR Storyname LIKE 'C%' ");
echo '';
while($row = mysql_fetch_object($ergebnis))
{
echo '',
'', '';
}
echo '
Bei der bisherigen statischen Version der oben dargestellten Seite habe ich für IE eine Weiche gehabt und anstatt
/ /
verwendet.
Doch mit SQL will ich ja gerade vermeiden jede Tabellenzeile selber zu schreiben und mit SQL einfügen lassen.
So wie oben.
Gibt es eine möglichkeit wie ich der while Schleife klarmachen kann das bei jeder Zeile ein anderes style verwendet werden muss. Pseudoklasse nth geht ja nicht.
aber ist es nicht nach wie vor so das IE die Pseudoklasse (even) oder eben (2n) beide nicht erkannt werden?
Meinen Informationen wird nur tr.fantasie-uebersicht:first-child erkannt.
Nicht aber
tr.fantasie-uebersicht:nth-child(2n) oder tr.fantasie-uebersicht:nth-child(odd)
Das stimmt schon.
Doch ich habe ja schon diese einfache Klasse siehe meine Style-Code oben verwendet.
Und ich kann mir gut vorstellen das ich … first …odd …even in mehr als einer Tabelle brauche.
Doch mit unterschiedlichen styles-Werten
wie im Code (Beitraganfang) zusehen ist richte ich mal rechts mal links aus. Und bei die erste Zeile ist als Kopf etwas anders gestaltete (keine Linie).
Aber was im css-style angegeben wird ist ja letztlich egal.
Wichtig ist der Wechsel.
Und es könnte eben gut sein das ich in der Zukunft eine weitere Tabelle anders gestalte.
Also brauche ich unterschiedliche Klassen. die alle einen Wechsel machen können.
Im Moment habe ich die Tabelle mit der Klasse fantasie-uebersicht.
tr.fantasie-uebersicht
und in Zukunft z.B. auch unter bilder-uebersicht und unter dagobert-uebersicht.
Doch alle drei Tabellen fantasie, bilder und dagobert haben unterschiedliche styleangaben in der Klasse.
damit dann aber trozdem ein first, odd und even möglich ist muss ich doch hinter die jeweilige Klasse eine Pseudoklasse hängen um den Wechsel möglich zu machen.
Ich bin nämlich davon ausgegangen das keine zwei Klassen hintereinander stehen dürfen.
Aber wie es scheint ist das ja möglich.
Und mit der Modul-Geschichte kann ich first, even und odd abarbeiten? ich habe ja drei Varianten.
Ich muss gestehen ich steige noch nicht ganz durch diese Arithmetic Operators durch.
Ich versuche mich mal daran.
Ich kannte Modulus als 5 Grundrechenart überhaupt nicht.
Bei Wiki habe ich aber schon die Grundzüge gelesen. Deswegen auch meine frage nach der ersten Zeile.
Denn wenn ich das verstehe wird Modulus in der Programmierung verwendet um zu erkennen ob eine Zahl gerade oder ungerade ist.
Und first also 1 wäre ja ungerade.
Denn wenn ich das verstehe wird Modulus in der Programmierung verwendet um zu erkennen ob eine Zahl gerade oder ungerade ist.
Modulo. Ja, zum Beispiel dazu, aber auch zu anderen Zwecken. Ein Modulo-4 (0%4, 1%4, 2%4, 3%4, 4%4, …) liefert eben eine wiederkehrende Sequenz von (0, 1, 2, 3, 0, 1, 2, 3 …) usw.
Es ordnet allgemein Zahlen nach „Restklassen“. Wenn du zum Beispiel die Felder eines Schachbretts von oben links nach unten rechts durchnummerierst von 0 bis 63, kannst du per Modulo-8 aus der Feldnummer die Spalte auf dem Spielfeld bestimmen.
62%8 ist etwa 7, Rest 6 → Feld #62 liegt in Spalte 6 (das ist bei einer Nummerierung von 0 bis 7 eben die vorletzte).
Das ist recht nützlich, wenn man Daten eindimensional speichert (0 bis 63), aber zweidimensional verwenden will (Zeile, Spalte).
Nein, das Minus war nur als Trennstrich in dem Wort Modulo-4 gemeint, so wie Webdesign-Wettbewerb oder so.
Die 20 ist Willkür. Keine Ahnung, wie viele Zeilen du da haben wirst.
62 % 8 heißt konkret „62 ganzzahlig geteilt durch 8 plus Rest“. Die größte Ganzzahl, die bei 62/8 zu finden ist, ist die 7. 7*8 = 56. 62-56 = 6. Also 62 % 8 = 7, Rest 6.
Das bedeutet also mit der 20 wird die maximale Zeilenanzahl auf der Seite angegeben.
Gut zu wissen das muss ich dann prüfen wie viele das im Maximum gewesen sind.
Ich bekomme auch keine Fehlermeldungen mehr.
Aber ich habe den Eindruck das mein $class nicht interpretiert wird.
Schau doch mal bitte ob ich das richtig zusammengesetzt habe.
[PHP]<?php
$ergebnis = mysql_query("SELECT * FROM Story WHERE Storyname REGEXP ‚[1]‘ ORDER BY Storyname DESC ") OR die(„Error: $abfrage “.mysql_error());
echo ‚
echo ‚‘,
sondern
echo ‚‘,
heissen muss bekomme ich für diese Zeile
Parse error: syntax error, unexpected T_ECHO, expecting ‚,‘ or ‚;‘
Ich habe auch schon versucht den Modulus und if-schleife für $class nach while zusetzen doch immer die selbe Fehlermeldung.
Zu Beginn hatte ich auch die <?php und ?> mit hineingeschrieben doch dann wurde der Ursprüngliche Code nicht richtig abgearbeitet.
Es schien mir als wenn man kein <?php .... <?php ?p> ....?> schreiben durfte.
diesen Fehler hatte ich schnell erkannt und mit der oben stehenden Code-Variante ersetzt.