Grafiken zuweisen
Bummsi
- php
Hallo,
sorry für die schlechte Überschrift, mir fiel keine bessere ein; ich hoffe, dass das Problem im Text klarer wird.
Für eine Spielerei brauche ich mal bitte Hilfe:
Ich habe meine News nach Hits sortiert und möchte den 3 Nachrichten mit den meisten Hits entsprechende Grafiken zuweisen.
Also praktisch
if { Nachricht 1 ist am meisten angeklickt } (<img="gold.gif">);
if { Nachricht 2 ist am meisten angeklickt } (<img="silber.gif">);
if { Nachricht 3 ist am meisten angeklickt } (<img="bronze.gif">);
else alle anderen Nachrichten bekommen <img src="sonstwas.gif">;
Mir ist klar, dass ich das über DESC LIMIT 1,1 etc. lösen könnte. Es muss aber ja auch einen anderen Weg geben.
Mit welchen Schlagwörtern komme ich zum Ziel? Vielen Dank!
@@Bummsi:
nuqneH
Mir ist klar, dass ich das über DESC LIMIT 1,1 etc. lösen könnte. Es muss aber ja auch einen anderen Weg geben.
CSS: Die Grafik als Hintergrundbild. Informiere dich dabei auch über CSS-Sprites! [ALA]
Mit welchen Schlagwörtern komme ich zum Ziel? Vielen Dank!
CSS 2.1: :first-child [CSS2 §5.11.1] und Selektoren für benachbarte Elemente [CSS2 §5.7]
CSS 3: :nth-child [CSS3-SELCTORS §6.6.5.2]
Qapla'
Danke! Allerdings habe ich mich offensichtlich falsch ausgedrückt.
Ein CSS-Problem soll meins nicht sein :-). Die Grafik darf ruhig <img src="..." alt=""> angeordnet sein. Mein Problem ist ein anderes:
Ich habe diese Anfrage ...
$sql = "SELECT * FROM news ORDER BY hits DESC LIMIT 30";
in der Kurzfassung. Der mit den meisten Hits soll jetzt eine Grafik bekommen, der mit den zweitmeisten Hits eine andere, der Dritte wiederum eine andere.
1. gold.gif
2. silber.gif
3. bronze.gif
Meine Frage ist, wie ich das realisiere. Mir fehlt praktisch der Befehl oder die Befehle, die dafür von Nöten sind.
hi,
in der Kurzfassung. Der mit den meisten Hits soll jetzt eine Grafik bekommen, der mit den zweitmeisten Hits eine andere, der Dritte wiederum eine andere.
- gold.gif
- silber.gif
- bronze.gif
Limit 3 liefert Dir genau 3. Und wenn Du schön sortiert hast, sind das die ersten drei ;-)
Hotti
Grüße,
Meine Frage ist, wie ich das realisiere. Mir fehlt praktisch der Befehl oder die Befehle, die dafür von Nöten sind.
dir riech tlimit 3, gehe einfach die 3 mit shcleife durch und zähl per i durch - grafik1.jpg etc wird dann eingebunden - wo genau ist das problem?
MFG
bleicher
Hello,
if { Nachricht 1 ist am meisten angeklickt } (<img="gold.gif">);
if { Nachricht 2 ist am meisten angeklickt } (<img="silber.gif">);
if { Nachricht 3 ist am meisten angeklickt } (<img="bronze.gif">);else alle anderen Nachrichten bekommen <img src="sonstwas.gif">;
Wo willst Du denn die Grafiken zuweisen?
In der Ausgabe?
Wie ist denn die Ausgabe aufgebaut?
Findet sie seitenweise statt z.B. als Liste, die aber nicht unbedingt nach den Plazierungen soriert ist?
Ich vermute, dass Du dann bei jeder dargestellten Seite diese Abfrage über ein Limit durchführen musst, um die ersten drei Plätze zu ermitteln. Diese merkst Du Dir dann (die IDs) und vergleichst sie bei der Ausgabegenerierung mit den dazustellenden Einträgen.
Du solltest aber noch fetlegen, was bei gelichem Punktestand geschehen soll. Ggf. musst Du also mehr als drei Platzierungen abfragen, umd geliche Plätze dann auch berücksichtigen zu können.
Und außerdem solltest Du wissen, wie wichtig dir die richtige Darstellung ist, denn wenn Du zur Darstellung der Liste zwei Abfragen machen musst, nämlich die eine in der von User gewünschten Reihenfolge und die andere, um die ersten Plazierungen zu finden, dann müsstes Du die Abfragen eigentlich atomar binden, also ein Table-Lock auf die betroffene Tabelle ausführen musst, bis beide Abfragen abgehandelt sind.
Alles klar?
Du merkst sicher schon, dass ein wenig mehr Input von Dir nicht schlecht wäre.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Grüße,
Mit welchen Schlagwörtern komme ich zum Ziel?
"PHP tutorial" wäre nicht schlecht - ich empfehle http://tut.php-quake.net/de/
MFG
bleicher