PHP / MySQL - 2 Probleme

Benutzer-42

abgemeldet
20 April 2006
22.497
1.328
Zwei Fragen:

Ich will aus meiner Tabelle "Zitate" die Personen filtern und ausgeben

1. Wie filter ich die doppelten raus?
2. Ich will die Namen dann immer 4 in einer Reihe und zig Reihen dann untereinander ausgeben, wie kann man das realisieren?

Über kurze Hilfestellungen wäre ich sehr dankbar
 
Wäre aso:

SELECT FIELDS FROM DB GROUP BY NAME

FIELDS / DB Platzhalter

richtig?
werde ich nachher mal probieren, melde mich, falls ich mich wieder zu dämlich anstelle :ugly:
 
Ich wuerde distinct vorziehen, group by hat eine andere bedeutung, somit ist zum beispiel folgendes unterschiedlich:
Code:
SELECT count(id) as c, field FROM table GROUP BY field
giebt dir c > 1 zurueck wenn es mehrere reihen giebt mit identischem field. Wohingegen
Code:
SELECT count(distinct field) as c FROM table;
genau eine Reihe zurueckgiebt mit der Anzahl reihen in der DB mit unterschiedlichen field werten.

Mag jetzt haarspalterei sein, aber ich hatte mal einen riesen Bug in meiner DB wo ich eine view erstellt hab' die group by verwendet hat und deshalb waren extrem viele counts sehr schraeg...
 
ich habe die Auswahl schonmal so gelöst:

Code:
$sql = "SELECT Zitate.Von FROM `Zitate` WHERE (Freigeschaltet = 1) GROUP BY Von";
Ergebnis: https://zitatebox.witis-web.de/?page=toc

aber irgendwie bin ich gerade zu blöd, dass in Reihen zu je 2/3/4 Einträge darzustellen ?!

schon nach Schleifen und Co gegooglet, aber irgendwie schein ich da eine Blokade zu haben


EDIT:
Fehler gefunden, der saß zwischen den Ohren :ugly:

klappt nun
 
ein neues Problem:

https://zitatebox.wittis-web.de/?page?toc

nun wird dort per Click auf die Namen eben dieser für die Suche unten ins Textfeld eingetragen
wie kann ich ein Textfeld sperren, so dass man manuell nichts eintragen kann?
sprich, es wird dort nur eingetragen, was die Funktion dort eingibt, nichts vom User manuell?!!
 
perfekt, genau, was ich gesucht habe

und dabei doch so simpel

so, über weitere Funktionen um was zu lernen mache ich mir dann morgen Gedanken, für heute reicht es wieder

sind ja schon einige Elemente nun drin
 
Gab es nicht die Möglichkeit bei "readonly" dies umgehen zu können, wenn man den "value" einfach auf dem Rechner verändert, oder irr ich mich da komplett?

Gruß
 
wie meinst du das?

hier in diesem Fall ist es ja nur dazu da, dass man selber nichts ins Eingabefeld eintragen kann, sondern es per Klick eben aus der Auswahl vorgegeben bekommt
 
Stimmt, sorry. Ich war total neben der Spur :wall::wall::wall: Tschuldigung, ich sollte mich mal schlafen legen.
 
na dann gute Nacht
werde mich auch in die waagerechte Schlafposition begeben

und morgen überlegen, was es noch so schönes an Funktionen gibt, die man machen kann

ToDo:
- JS für externe Anzeigen
- Bannererzeugung als dynamischer Banner
- Statisik
- Fehlerkorrektur ACP

also noch genug, mit dem ich nerven kann :ugly:
 
Ich wuerde distinct vorziehen, group by hat eine andere bedeutung, somit ist zum beispiel folgendes unterschiedlich:
Code:
SELECT count(id) as c, field FROM table GROUP BY field
giebt dir c > 1 zurueck wenn es mehrere reihen giebt mit identischem field. Wohingegen
Code:
SELECT count(distinct field) as c FROM table;
genau eine Reihe zurueckgiebt mit der Anzahl reihen in der DB mit unterschiedlichen field werten.

Mag jetzt haarspalterei sein, aber ich hatte mal einen riesen Bug in meiner DB wo ich eine view erstellt hab' die group by verwendet hat und deshalb waren extrem viele counts sehr schraeg...


wie versprochen :ugly: nun dazu weitere Fragen

ich will nun die Anzahl derer zählen, von denen die Zitate stammen

Code:
$sql = "SELECT count(distinct Zitate.Von) FROM `Zitate` WHERE (Freigeschaltet = 1) GROUP BY Von";

liefert aber ein falsches Ergebnis, zu sehen im Menü: https://zitatebox.wittis-web.de

wie muss ich das alsoi umstellen, damit der COUNT ein richtiges Ergebnis liefert?
 
leider nein

bei deiner zuerst geposteten Variante kam 2 als Ergebnis raus,
bei deiner zweiten Variante steht Abe Lincoln als Ergebnis da :ugly:

EDIT:
Fehler gefunden .. und der Gewinner heißt:
Code:
$sql = "SELECT count(distinct Von) FROM `Zitate` WHERE (Freigeschaltet = 1)";
 
hi

ich bedanke mich hier mal kurz hatte heute auch einen Fall wo ich DISTINCT benötigt habe. Als aktiver Mitleser hier natürlich sofort an den Thread gedacht und da stand die Lösung auch schon ;)

Selbe Problem wie witti unter Punkt 1 nur das es bei mir Ordnernamen waren ;)

mfg

Chris
 
dann hat meine Fragrei ja sogar noch jemandem geholfen :mrgreen:

für heute reicht es bei mir, nur noch Fehler ausbügeln, weitere Sachen überlege ich mir dann für morgen :ugly:

vor allem, hier wird am kleinen Projekt geübt, um dann meine Spieleseite Game-Fire umzubauen
 
Jup, hab' mich grad auch gefragt was das Group by macht, das reduziert dir ja die dimension um eins runter, wobei du genau die dimension zaehlen moechtest...
 
jetzt klappt es ja

will jetzt nur noch eine Tabelle löschen und die Bewertung dafür in die Zitatetabelle direkt reinsetzen, weil es Blödsinn ist, das in zwei zu speichern

werde dann die Bewertung noch etwas ändern, mit grafischer Anzeige

also noch viel vor, vielleicht kann ich heute Nacht ja wieder nicht schlafen *g*