Problem mit schleife und Wertevergleich

Hallo Forum,

ich habe ein kleines Problem mit einer Schleife.
Ich baue mir eine Tabelle mit einer for-Schleife auf.

In jedes Feld schreibe ich einen durchgängigen Wert rein.
Anschliessend hole ich mir per „while-schleife“ die Datensatze aus meiner Tabelle, die genau diesen Wert treffen und lasse sie mir anzeigen. Zudem wird ein kleines GIF angezeigt, welches ich eigentlich in dem Feld anzeigen möchte, welches die ID des Datensatzes hat.

PROBLEM:

Anzeigen lassen sich die Bilder aber leider nicht in dem Feld, in dem es hinein soll.

So baue ich meine Tabelle:

[PREHTML]

<?php for ($n=0; $n<350; $n++) {
echo $n; ?\><?php for ($t=0; $t<33; $t++) {
echo ' '; $x = ++$n; echo $x; while ($y = mysql\_fetch\_row($ergebnis) ) { if ($x==$datensatz['sternchen']) { echo ''; } } } ?\> <?php }
?\> [/PREHTML] Beispiel: Wenn mein Wert "$x" in der "if-Verzweigung" dem Inhalt des Feldes "$datensatz['sternchen']" gleicht, dann soll mir das Bild in dem richtigen Feld mit der richtigen nummer $x angezeigt werden. Das tut es aber leider nicht. Kann mir bitte jemand sagen, warum die Bilder nicht in den entsprechenden Feldern dargestellt werden? Bin für jede Hilfe sehr dankbar. |

Hallo,

[PREHTML]

BB-Conde gibt es hier nicht.

...
while ($y = mysql\_fetch\_row($ergebnis) ) {
 if ($x==$datensatz['sternchen']) {
 echo '';
 }
 echo '';
}
...

Ungetestet, aber so sollte es besser sein. Wenn du Spalten willst, solltest du sie auch immer erzeugen, nicht nur im if-Zweig. Wahrscheinlich ist noch ein else mit

echo '&nbsp;';


    
    nötig, damit es auf allen Browsern richtig dargestellt wird.
    Zur Verwendung von Tabellen sage ich nichts.
    
    Cu Rene

Hi Rene,

besten Dank für deine Antwort. Leider klappt das nicht wirklich. Hatte ich zuvor auch schon probiert. Die Spalten blende ich auch ein. Allerdings habe ich diesen code leider nicht hier rein kopiert. sorry!

Das Hauptproblem ist die Darstellung der Bilder in der richtigen Zelle. Irgendwie klappt es mit dem Vergleich der id aus der Datenbank mit der Zahl in der Zelle nicht.

Irgendwie schafft es mein kleinhirn nicht eine vernünftige struktur im code zu bilden, die das Bild in die richtige Zelle beamt.

Hättest du noch nen anderen Ansatz oder ne Idee, woran es liegen könnte?

Vielen Dank und viele Grüße aus Köln!
Mo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Rene,

besten Dank für deine Antwort. Leider klappt das nicht
wirklich. Hatte ich zuvor auch schon probiert. Die Spalten
blende ich auch ein. Allerdings habe ich diesen code leider
nicht hier rein kopiert. sorry!

Das Hauptproblem ist die Darstellung der Bilder in der
richtigen Zelle. Irgendwie klappt es mit dem Vergleich der id
aus der Datenbank mit der Zahl in der Zelle nicht.

Irgendwie schafft es mein kleinhirn nicht eine vernünftige
struktur im code zu bilden, die das Bild in die richtige Zelle
beamt.

Hättest du noch nen anderen Ansatz oder ne Idee, woran es
liegen könnte?

Vielen Dank und viele Grüße aus Köln!
Mo

Hallo Mo/Laurenzo,

kann Du Deine Code mal erläutern?

while ($y = mysql\_fetch\_row($ergebnis) ) {
 if ($x==$datensatz['sternchen']) {
 echo '';
 }
}

Ich gehe davon aus, dass $img2 von Dir ausserhalb der Schleife mit dem korrekten Wert für das Sternchen-Image belegt wurde. Aber wie kommt das Ergebnis von mysql_fetch_row aus dem Array $y in das Array $datensatz? Das Statement, das in $ergebnis steht über ein Attribut ‚sternchen‘ oder eventuell eher ‚Sternchen‘?

MfG Georg V.

Hi Rene,

besten Dank für deine Antwort. Leider klappt das nicht
wirklich. Hatte ich zuvor auch schon probiert. Die Spalten
blende ich auch ein. Allerdings habe ich diesen code leider
nicht hier rein kopiert. sorry!

Das Hauptproblem ist die Darstellung der Bilder in der
richtigen Zelle. Irgendwie klappt es mit dem Vergleich der id
aus der Datenbank mit der Zahl in der Zelle nicht.

::Irgendwie schafft es mein kleinhirn nicht eine vernünftige

struktur im code zu bilden, die das Bild in die richtige Zelle
beamt.

Hättest du noch nen anderen Ansatz oder ne Idee, woran es
liegen könnte?

Vielen Dank und viele Grüße aus Köln!
Mo

Hallo Mo/Laurenzo,

kann Du Deine Code mal erläutern?

while ($y = mysql_fetch_row($ergebnis) ) {
if ($x==$datensatz[‚sternchen‘]) {
echo ‚‘;
}
}

Ich gehe davon aus, dass $img2 von Dir ausserhalb der Schleife
mit dem korrekten Wert für das Sternchen-Image belegt wurde.
Aber wie kommt das Ergebnis von mysql_fetch_row aus dem Array
$y in das Array $datensatz? Das Statement, das in $ergebnis
steht über ein Attribut ‚sternchen‘ oder eventuell eher
‚Sternchen‘?

MfG Georg V.

Hallo Georg,

tut mir Leid, das war ein Tippfehler. Selbstverständlich sollte es wie folgt heissen:

while ($datensatz = mysql_fetch_row($ergebnis) ) {
if ($x==$datensatz[‚sternchen‘]) {
echo ‚‘;
}
}

Der Datensatz, der aus der Tabelle rausgeholt wird, muß natürlich auch so heissen. Das Foto, welches ich mit „$img2“ deklariert habe, wird in meinem Script weiter oben (hier nicht aufgeführt) definiert. Es enthält einen Pfad, welcher in der Datenbank in einem dafür vorgesehen Feld als Standardwert steht. Dieser wird in dem -Tag eingesetzt und das Foto erscheint.

Das funktioniert auch wunderbar.

Problem:
Durch die Schleife, in der jeder Datensatz eigentlich einen Wert zugewiesen werden soll, soll dann auch entsprechend das Bild eingesetzt werden.

Beispiel:

Ich habe die folgende Matrix (eindimensional):

1, 2, 3, 4, 5, 6, 7,
8, 9, 10, (11), 12, 13, 14,
14, 15, 16, (17), 18, 19, 20

Durch einen Zufallszahlengenerator (random())
erhält die eine Datensatzregistrierung eine
Zahl ‚11‘. Die nächste erhält z.B. ‚17‘.
Die Datensätze werden aber nicht in die
richtige Zelle geschrieben aber auch nicht
korrekt aus der Datenbank ausgelesen, obwohl
ich sage:
„Select * FROM Tabelle WHERE Feld>0“;

Dabei ist Feld das Feld in der Datenbanktabelle, welches einen random()-Wert zwischen x und y erhält. x und y sind dabei die Anzahl der generierten Felder in meiner HTML-Tabelle, in der jedes Feld eine Zahl durch die Schleife erhält.

Wie gesagt, das Problem ist, dass die Datensätze nicht in den richtigen Feldern landen, sondern eher irgendwo oberhalb der Matrix.

Wenn du willst, dann kann ich dir die Seite zur Ansicht per Dyndns zeigen und du kannst dir das mal anschauen was ich meine?

Die Seite muß zwar noch ein wenig aufgepeppelt werden aber man kann sie sich ja mal anschauen.

Schöne Grüße aus Köln!

Wie gesagt, das Problem ist, dass die Datensätze nicht in den
richtigen Feldern landen, sondern eher irgendwo oberhalb der
Matrix.

das haengt aber mit dem kaputten html zusammen:

  • $n kann nur vor od. nach dem table stehen, weil es in keiner td und keiner tr steht.
  • du oeffnest 11550 zellen, und schliesst die erste so oft, wie du datensaetze hast. und alle anderen gar nicht mehr, weil du laut deinem code nur 1x irgendwo ausserhalb dem table abfragst. aber in jeder zelle alle datensaetze holst.

Die Seite muß zwar noch ein wenig aufgepeppelt werden aber man
kann sie sich ja mal anschauen.

öhm: du musst zumindest diese seite wegschmeissen und wenigstens im kopf einen konkreten programmablaufplan erstellen und den dann in code umformulieren.

Hallo dog.je!

Erstmal vielen Dank für deine Antwort.
Ich sehe ein, dass der HTML-Code nichts halbes und nichts ganzes ist. Ich habe jetzt die Zeilen so geändert, sodass $n in den Zeilen erscheint.

Zu deinem letzten Kommentar, die Seite wegzuschmeissen, möchte ich nicht viel sagen. Du hast Recht wenn du sagst, dass man einen konkreten programmablaufplan im Kopf haben muss.
Da gebe ich dir vollkommen recht.

Aber hast mal darüber nachgedacht, dass es Menschen gibt die vielleicht nicht so gut programmieren können wie du?

Ja…sowas gibts…echt jetzt…das ist wirklich wahr. Das kannste mir glauben. Und stell dir vor…ich bin hier um mir Hilfe zu holen, da ich eben zu diesen Menschen gehöre. Ich weiss ich weiss…das ist für einen Programmierer wie dich kaum zu begreiffen das es diese Rasse Menschen gibt, aber es ist wirklich wahr…ES gibt Sie und sie weihen gleich unter uns…jeder von den vielen Millionen.

Haste dir darüber mal Gedanken gemacht, bevor du solche Kommentare loslässt?

Wir kommen eben in diese Foren um uns Hilfe zu holen, weil wir bei der Erstellung dieser Möchtegern-Progrämmchen Probleme haben. Deshalb gibts diese Foren. Es gibt sie nicht um dauernd Kommentare loszulassen. Das ist doch einfach.

Helfen und korrekte Antworten zu geben…das ist viel schwieriger.

In diesem Sinne…Besten Dank für deine Hilfe.

Bis zum nächsten Kommentar! :wink:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]