Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Nein, du sollst natürlich meinen Code nicht 1:1 übernehmen, das geht doch gar nicht!!
Du solltest das als Beispiel nehmen und nach diesem Prinzip dein SQL-Statement abändern.

In meinem Beispiel würde die Anzahl der Beiträge zu jedem Thema (Thread) in num_posts ausgegeben werden und ist damit Teil des Ergebnisses.
Übertragen auf deine Art der Ergebnisauswertung würde das bedeuten, dass du die Nummer ohne extra Schleife mit $eintraege->num_posts ansprechen könntest.

Natürlich brauchst du weiterhin die vorhandene while-Schleife, denn es gibt ja theoretisch mehrere Themen!

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Nein, du sollst natürlich meinen Code nicht 1:1 übernehmen, das geht doch gar nicht!!
Du solltest das als Beispiel nehmen und nach diesem Prinzip dein SQL-Statement abändern.



Ja das ist mir auch klar!

Ich weiß nur nicht wie ich dein codebespiel bei mir einbringen soll!!
$abfrage = @ mysql_query("SELECT *  FROM thema ORDER BY id DESC LIMIT $start,$post_pro_site")or die("Konnte den SELECT-Befehl nicht ausführen!!!");

So das war mein Befehl zum Ausführen

dan habe ich den jetzt mal so umgebaut

        $abfrage = @ mysql_query("SELECT *  , count (name) AS anzahl
                                  FROM thema, antworten
                                  WHERE thema.id = antworten.themaid
                                  ORDER BY id DESC LIMIT $start,$post_pro_site")or die("Konnte den SELECT-Befehl nicht ausführen!!!");
so das funktioniert nicht , denn ich brauche das where ja auch nur um zu errechnen nicht zum anzeigen der Werte!!

Was mach ich noch falsch?

der_webi

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
so das funktioniert nicht , denn ich brauche das where ja auch nur um zu errechnen nicht zum anzeigen der Werte!!

Das Where brauchst weder zum Errechnen noch zum Anzeigen...das dient lediglich dazu, um die Relation zwischen den Tabellen herzustellen.

Nach meinem Dafürhalten stimmt das Statement eigentlich. Fast. Nimm mal das Leerzeichen nach "count" raus. Die Klammer muss an den Funktionsnamen direkt ran.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Tausend Dank

endgültige Fassung:

        $abfrage = @ mysql_query("SELECT  thema.id, thema.datum, thema.uhrzeit, thema.name, thema.head, count(themaid) AS anzahl
                                  FROM thema, antworten
                                  WHERE thema.id = antworten.themaid
                                  GROUP BY thema.id, thema.datum, thema.uhrzeit, thema.name, thema.head
                                  ORDER BY thema.id DESC LIMIT $start,$post_pro_site")or die("Konnte den SELECT-Befehl nicht ausführen!!!");


Da musste ich doch glatt nochmal mein buch aufschlagen und auserdem habe ich mal gehöhrt oder gelesen, das wenn man count verwendet auch GROUP BY stehen muss, naja jetzt tut es ja

nochmals Danke

der_webi

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ach ja, das GROUP BY... in meinem Beispiel stand es zwar drin, aber in deinem Statement hatte ich übersehen, dass es fehlte :)

Wenn's jetzt geht, is ja supi :D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

JAP ;D;D;D;D;D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

So sorry ich kann es jetzt einfach nicht lassen, Aber meine Schleife in Schleife passt schon in gewissermaßen!!! ;D;D

Ich habe jetzt wie vorgeschlagen alle Antworten in eine Tabelle gebracht.  So und da ich jetzt das Thema anzeigen will benutze ich meinen SELECT

$abfrage = @ mysql_query("SELECT  thema.id AS tid, antworten.datum, antworten.zeit, antworten.name, thema.head, count(themaid) AS anzahl
                                  FROM thema, antworten
                                  WHERE thema.id = antworten.themaid
                                  GROUP BY thema.id, antworten.datum, antworten.zeit, antworten.name, thema.head
                                  ORDER BY thema.id DESC LIMIT $start,$post_pro_site")or die("<b>Konnte den SELECT-Befehl nicht ausführen!!!</b>");
und dann noch die schleife zum ausgeben:
        echo "<table class=\"GBtable\" width=\"80\" border=\"0\"  cellpadding=\"5\"  align=\"center\">";
        echo "<tr>";
        echo "<td colspan=\"3\" class=\"GBhead\"><span><b class=\"ul_fett\">Thema:<< </b> <b class=\"ul\"><a href=\"index.php?thema=6&inhalt=2&id=".$eintraege->tid."\">".$eintraege->head."</a>>><b></span></td><br> ";
        echo "</tr>";
       



        echo "<tr>";
        echo "<td><span><b class=\"ul_fett\">Am </b> <b class=\"ul\">".$eintraege->datum."</b> um <b class=\"ul\">".$eintraege->zeit."</b></span></td>";
        echo "<td width=\"20\">";
        echo "</td>";
         echo "</tr>";
        echo "<tr>";
        echo "<td  border=\2px\" >  <b class=\"ul\">      Von: ".$eintraege->name."</b></td>";
         echo "<td  border=\2px\" ><b class=\"ul_fett\">Beträge: </b><b class=\"ul\">".$eintraege->anzahl."</b></td>";
        echo "</tr>";
       
        echo "</table><br>";


So ja alles schön und gut, dachte ich !!, aber  ;)

Wenn jetzt eine Antwort mehr kommt , dann zeigt er sie hier auch an  inform eines neuen themas und das soll er ja gar nicht, sondern nur einmal!

So...

Jetzt kommt meine Schleife in Schleife
Voraussetzung:
Wir bezeichnen If-Anweisung oder was auch immer mal als Schleife  ;D;D;D;)

so ich habe 2 variablen gemacht..
 $alte_themaid = 0;
 $neue_themaid = 0;

so und dann kommt die if- Schleife in der  While- Schleife

        while($eintraege = mysql_fetch_object($abfrage))

        {
        $neue_themaid = $eintraege->tid ;


        //echo "$alte_themaid" ;
        if ( $alte_themaid != $eintraege->tid ) {
        echo "<table class=\"GBtable\" width=\"80\" border=\"0\"  cellpadding=\"5\"  align=\"center\">";
        echo "<tr>";
        echo "<td colspan=\"3\" class=\"GBhead\"><span><b class=\"ul_fett\">Thema:<< </b> <b class=\"ul\"><a href=\"index.php?thema=6&inhalt=2&id=".$eintraege->tid."\">".$eintraege->head."</a>>><b></span></td><br> ";
        echo "</tr>";
       



        echo "<tr>";
        echo "<td><span><b class=\"ul_fett\">Am </b> <b class=\"ul\">".$eintraege->datum."</b> um <b class=\"ul\">".$eintraege->zeit."</b></span></td>";
        echo "<td width=\"20\">";
        echo "</td>";
         echo "</tr>";
        echo "<tr>";
        echo "<td  border=\2px\" >  <b class=\"ul\">      Von: ".$eintraege->name."</b></td>";
         echo "<td  border=\2px\" ><b class=\"ul_fett\">Beträge: </b><b class=\"ul\">".$eintraege->anzahl."</b></td>";
        echo "</tr>";
       
        echo "</table><br>";
        }
         $alte_themaid = $neue_themaid ;
        }


So Erklärung:
Der Eintrag wird nur dann ausgegeben , wenn er noch nicht vorhanden ist!!!

So !!!! ;D;D;D;D;D;D;D;D;D;D;D;D;D;D;D;D;D;D;D

 :P:P:P:P:P:P:P:P:P:P:P

In gewisser maßen war ich also mit meiner Schleife in Schleife gar nicht so verkehrt, auch wenn man glaub ich einen if-clauses nicht als schleife bezeichen sollte



der_webi


PS: Das soll natürlich jetzt nicht sagen das ich dieHilfe nicht gebrauchcht habe :-[ , aber ;D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Super! Erstma Einträge aus der Datenbank auslesen, um sie dann letztendlich doch nicht anzuzeigen  ::)

-> Sehr elegant gelöst. Macht sich vor allem in der Performance enorm postiv bemerkbar ;D

Ne jetzt im Ernst: du solltest dir überlegen, wie du es erreichen kannst, dass nur das aus der DB ausgelesen wird, was auch ausgegeben werden soll. Alles andere ist Verschwendung von Ressourcen und absoluter ** Netiquette! **. Wenn natürlich nur alle 2 Tage jemand dein Forum besucht, wäre die Lösung akzeptabel ;D

greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Naja aber mysql ist noch nicht so meine Stärke, da kann man ja auf Sachen aufbauen die man schon kann!!! ;D;D


naja und ich rechne bei dem Forum so auf ca 1 - 2 beiträge am tag in guten Zeiten.


Naja hauptsache es läuft erstmal

der_webi


« HTML-Tabelle Struktur ändernBild wird nicht vollständig angezeigt »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...