php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-09-2010, 19:21
chrissi11
 Registrierter Benutzer
Links : Onlinestatus : chrissi11 ist offline
Registriert seit: Jan 2008
Beiträge: 70
chrissi11 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Group by, dann höchstzahl festlegen

Hi zusammen,
ich hab folgendes vorhaben:
Zur Veranschaulichung meines vorhabens kann man sich ein Votescript vorstellen. Nur bei mir ist das ein klein wenig anders.

1.) DB Einträge auslesen
2.) übereinstimmigkeiten zusammenzählen
3.) Zahl mit höchstem Wert in Variable schreiben

Bei genau Punkt 3 ist mein Problem.

Mit PHP/ Smarty hab ich das nun so bis Punkt 2 gelöst.

PHP-Code:
$list $osDB->getAll('select *, count(voteid) as zahl from ! group by voteid'
 
, array( WAHLEN_TABLE$_SESSION['UserId']  ) ); 
Mit Smarty ruf ich das so ab:
HTML-Code:
{foreach item=item key=key from= $list}
{$item.voteid} ist {$item.zahl} mal vorhanden<br />
{/foreach}
Damit bekomm ich nun auch die Anzahl der gemeinsamen Einträge.

Da ich das aber ab hier noch nicht mit Smarty machen kann, muss ich zunächst mit php weiter arbeiten.
Dafür muss das höchste Ergebnis in eine Variable gespeichert werden.
Die brauch ich nämlich später zum vergleich bzw. zur Auswertung.
Und ich find einfach keine Idee das umzusetzen.
Ich bitte euch da mal wieder um Hilfe.

Das nächste Problem ist, das ich später noch eine Abfrage brauche,
die folgendermaßen aussehen soll:

Von den Einträgen doppelte oder mehr herauszufiltern, so das nur noch eine voteid von jedem übrigbleibt :/ und hier scheiter ich ebenfalls.

Könnt ihr mir da weiterhelfen/Tipps geben?

Vielen Dank im voraus

LG
Mit Zitat antworten
  #2 (permalink)  
Alt 14-09-2010, 19:26
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von chrissi11 Beitrag anzeigen
Und ich find einfach keine Idee das umzusetzen.
Und ich hab überhaupt keine Idee, was du eigentlich wissen willst. Und was du eigentlich erreichen willst.

Zitat:
Das nächste Problem ist, das ich später noch eine Abfrage brauche,
die folgendermaßen aussehen soll: [...]
Bitte gewöhne dir an, bei solchen Fragestellungen Tabellenstruktur, Beispieldaten und mit diesen gewünschtes Ergebnis zu nennen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 14-09-2010, 19:38
chrissi11
 Registrierter Benutzer
Links : Onlinestatus : chrissi11 ist offline
Registriert seit: Jan 2008
Beiträge: 70
chrissi11 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Roger Chef, werd mir mühe geben
Ok, ich dachte ich hab mir schon Mühe gegeben das verständlich auszudrücken.
Aber anscheinend noch nicht genug

Tabellenstruktur:
wahlid userid hinweis voteid
1 200 text 100
2 300 text 100
3 400 text 200

Ein User wählt einen anderen, hier: userid 200 wählt voteid 100
usw usw.

Mit group by im SQL statement die häufigkeit der gevoteten Personen
zusammenzählen . Hier wären es zwei. voteid 100 kommt 2 mal vor.
Damit ist das, das höchste Ergebnis.

PHP-Code:
$list $osDB->getAll('select *, count(voteid) as zahl from ! group by voteid'
 
, array( WAHLEN_TABLE$_SESSION['UserId']  ) ); 
Nun will ich, das voteid, also das höchste Ergebnis beim zusammenzählen
in eine Variable geschrieben wird.
$ergebnis = ??


----Andere Sache----
Beim zweiten Fall soll die Abfrage so sein, das von den gevoteten Ergebnissen
nur noch jeweils eine voteid ausgegeben wird und nicht alle.
Also nicht zwei mal 100 sondern voteid 100 dann voteid 200 usw.

Hoffe das ich das besser beschrieben hab :P

Geändert von chrissi11 (14-09-2010 um 19:42 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 14-09-2010, 19:50
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von chrissi11 Beitrag anzeigen
PHP-Code:
$list $osDB->getAll('select *, count(voteid) as zahl from ! group by voteid'
 
, array( WAHLEN_TABLE$_SESSION['UserId']  ) ); 
Nun will ich, das voteid, also das höchste Ergebnis beim zusammenzählen
in eine Variable geschrieben wird.
$ergebnis = ??
Und $osDB ist jetzt was für ein Objekt?

Lies in der Doku dazu nach, wie man das Ergebnis einer damit gemachten Abfrage in eine Variable bekommt.

Zitat:
Beim zweiten Fall soll die Abfrage so sein, das von den gevoteten Ergebnissen nur noch jeweils eine voteid ausgegeben wird und nicht alle.
Also nicht zwei mal 100 sondern voteid 100 dann voteid 200 usw.
Also SELECT DISTINCT.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 14-09-2010, 19:59
chrissi11
 Registrierter Benutzer
Links : Onlinestatus : chrissi11 ist offline
Registriert seit: Jan 2008
Beiträge: 70
chrissi11 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja, hab ich gemacht.Dort bin ichja nicht fündig geworden oder eben blind..und hab unendlich gegoogelt nach ggf. beispielen oder so :/

naja, das hätt ich dann auch anderst schreiben können.
osDB ist ne klasse auf die zugegriffen wird für die datenbank abfrage

PHP-Code:

'select *, count(voteid) as zahl from WAHLENTABELLE group by voteid' 
distinct also, danke, werd ich mir mal anschauen..bei dem anderen brauch ich wohl nomma nen tipp :/
Mit Zitat antworten
  #6 (permalink)  
Alt 14-09-2010, 20:05
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

SELECT * sollte man nicht verwenden, sondern immer genau die Spalten auswählen, die man haben will.

Alle Spalten, die im SELECT aufgeführt werden, sollten auch im GROUP BY stehen. Jede andere Datenbank haut dir sonst Fehlermeldungen um die Ohren, nur MySQL ist so großzügig und ignoriert es (liefert dafür aber eventuell falsche Ergebnisse).

SQL-Schlüsselwörter sollten groß geschrieben werden, damit sie sich optisch von den Programmiersprachen abhebt. Spalten- und Tabellennamen hingegen sollten klein geschrieben werden.
Mit Zitat antworten
  #7 (permalink)  
Alt 14-09-2010, 20:08
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von chrissi11 Beitrag anzeigen
osDB ist ne klasse
Erstaunlich - trotz expliziter Nachfrage schaffst du es nicht, uns irgendwelche Informationen zu liefern, die irgendwie weiterhelfen könnten.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #8 (permalink)  
Alt 14-09-2010, 20:51
chrissi11
 Registrierter Benutzer
Links : Onlinestatus : chrissi11 ist offline
Registriert seit: Jan 2008
Beiträge: 70
chrissi11 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@hell, danke, werds mir mal versuchen anzugewöhnen und die sache nomma ändern

@wahsaga
was ist an der aussage so schwer zu verstehen, wenn ich dir sage
das diese auf eine klasse zugreift die für die datenbankabfrage zuständig ist?
dafür hab ich nochmal extra das statement geändert. wo ist das problem?
spielt doch eigentlich garkeine rolle was das. wichtig ist doch nur das statement oder? und das hab ich extra nochmal geändert *amkopfkratz
Mit Zitat antworten
  #9 (permalink)  
Alt 14-09-2010, 21:00
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von chrissi11 Beitrag anzeigen
was ist an der aussage so schwer zu verstehen, wenn ich dir sage das diese auf eine klasse zugreift die für die datenbankabfrage zuständig ist?
Es geht nicht darum, ob das schwer zu verstehen ist - das ist so selbstverständlich, dass es absolut überflüssig ist, dass du das noch mal erwähnst.

Du wolltest aber wissen, wie du das Ergebnis der Abfrage in eine Variable bekommst - und das hängt davon ab, was für eine Klasse das den eigentlich ist (nicht davon, was sie ganz offensichtlich macht).
Dazu hast du uns immer noch keine Information geliefert (obwohl ich nicht sehe, was an der Frage danach so schwer zu verstehen ist, das müsstest du uns jetzt also bitte sagen) - also können wir dir diesbezüglich auch nicht weiterhelfen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #10 (permalink)  
Alt 15-09-2010, 20:35
sili
 Registrierter Benutzer
Links : Onlinestatus : sili ist offline
Registriert seit: Feb 2004
Beiträge: 115
sili ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich bin mir auch nicht sicher, was du genau bewerkstelligen willst. Aber suchst du vielleicht "GROUP BY foo HAVING irgendwas"?
Mit Zitat antworten
  #11 (permalink)  
Alt 19-09-2010, 00:29
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

da muss ich wasaga zustimmen ..

wenn ich aber mal von meiner Datenbank-Klassen schließen darf ....

$list ist ein array .. das sollte unter anderem einen Eintrag für das von dir abgefragte count(voteid) as zahl haben ...

häng an deine Abfrage ein "ORDER BY zahl DESC" an, dann landet die höchste zahl in der ersten Ergebnis-Zeile -> bei mir würde dann ein $list[0]['zahl']
die von dir gewünschte Angabe enthalten

bei deiner Datenbankklasse musst du halt mal in der Doku nachschauen, wie das array aufgebaut ist
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Galeriebild festlegen brauni54 PHP Developer Forum 16 10-06-2006 23:40
GROUP BY und dann kleinsten Wert Spoony SQL / Datenbanken 2 18-04-2006 10:22
Value festlegen steiner82 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 10-10-2005 10:30
mysql dann Session befüllt und dann klappt header() nicht mehr... westberlin PHP Developer Forum 4 08-07-2003 08:36
Startseite festlegen? Berni HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 03-01-2001 17:18

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:04 Uhr.