SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.10.2016, 00:08:14
xandlsoft xandlsoft ist offline
Anfänger
 
Registriert seit: Oct 2016
Alter: 51
Beiträge: 3
Subquery od. andere Lösung...?

Hallo @all,

ich versuche folgende Aufgabe zu lösen:

Durch folgende Abfrage erhalte ich für ein Quiz-Programm folgende Daten-
"SELECT COUNT(DISTINCT(`id`)) FROM `statistik` WHERE `user_id` =1 group by `fragen_id`";

COUNT(DISTINCT(`id`))
49
9
6
19

Wie schaffe ich nun aus diesen Werten das Maximum zu bestimmen?
Ich steh wohl voll auf der Leitung...:-(

DANKE vorab und liebe Grüße,
xs
Mit Zitat antworten
  #2  
Alt 02.10.2016, 20:10:57
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Subquery od. andere Lösung...?

Hallo und willkommen hier im Forum.

Wie wäre es mit der Struktur der Datenbanktabelle und ein paar aussagekräftigen Datensätzen als Beispiel. Dann lässt sich schneller helfen und man versteht das Problem besser.

Vorschlag:
PHP-Code:
"SELECT fragen_id, COUNT(DISTINCT(`id`)) AS zaehler 
 FROM `statistik` 
 WHERE `user_id` = 1 
 GROUP BY `fragen_id` 
 ORDER BY zaehler DESC 
 LIMIT 1;" 
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 02.10.2016, 22:20:45
xandlsoft xandlsoft ist offline
Anfänger
 
Registriert seit: Oct 2016
Alter: 51
Beiträge: 3
AW: Subquery od. andere Lösung...?

Hi,

OK ich werd's versuchen, ohne zu weit auszuschweifen...

Also ich habe einen (einfachen) Quiz programmiert, der grundsätzlich nach meinen Vorschlägen läuft. Nun kommt jedoch dazu, dass mehrere Benutzer den gleichen Quiz verwenden möchten und ich das Skript umbasteln muss.

Grundsätzlich schreibe ich die Antworten in eine Tabelle Namens "statistik" mit folgender Struktur:
Code:
CREATE TABLE IF NOT EXISTS `statistik` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fragen_id` int(11) NOT NULL,
  `antworten_id` int(11) DEFAULT NULL,
  `r_f` tinyint(1) DEFAULT '0',
  `user_id` int(11) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2238 ;
Also sprich jede Antwort ergibt einen Zeileneintrag, wie zBsp. die ersten 3 Datensätze:
Code:
INSERT INTO `statistik` (`id`, `fragen_id`, `antworten_id`, `r_f`, `user_id`) VALUES
(1, 41, 52, 1, 1),
(2, 47, 0, 0, 1),
(3, 36, 0, 0, 1);
Als Erklärung:
id=klar
fragen_id=ID der einzelnen Frage (Verknüpfung zur Tabelle fragen)
antwort_id=ID einer Antwortmöglichkeit (Verknüpfung zur Tabelle antworten), falls eine richtige Anwort gegeben wird.
r_f=Richtig oder Falsch, je nach dem 0 oder 1
user_id=ID des angemeldeten Users

Um herauszufinden wie oft die Fragen (per Zufalls) bereits beantwortet wurden, dient diese Abfrage:
Code:
"SELECT 
COUNT( DISTINCT (`id`) ) AS zaehler
FROM `statistik`
WHERE `user_id` =1
GROUP BY `fragen_id`";
Als Ergebnis liefert mir SQL:
Code:
 zaehler
49
9
6
19
6
...u.s.w.
Um aus diesen Werten dann weitere Filter nutzen zu können, benötige ich Informationen wie-
  • welche Frage wurde am Meisten abgefragt?
  • wie oft wurden die Fragen durchschnittlich abgefragt
  • ...eventuell noch weitere Auswertungen

Bis jetzt habe ich einen Summenzähler in der Fragentabelle laufen gehabt, jedoch möchte ich nicht für jeden User eine Spalte anlegen, sondern diese Information(en) aus der statistik-Tabelle holen.

Ich hoffe ich habe alles "halbwegs" verständlich formuliert...?!

DANKE vorb für eure Unterstützung und eure Lösungsansätze!!!
Mit Zitat antworten
  #4  
Alt 03.10.2016, 00:02:42
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Subquery od. andere Lösung...?

Danke, so ist es verständlicher.

Zitat:
Zitat von xandlsoft Beitrag anzeigen
[..]

Um aus diesen Werten dann weitere Filter nutzen zu können, benötige ich Informationen wie-
  • welche Frage wurde am Meisten abgefragt?
  • wie oft wurden die Fragen durchschnittlich abgefragt
  • ...eventuell noch weitere Auswertungen
Hast Du Dir mal meinen o.g. Vorschlag dazu angesehen - sollte den ersten Punkt beantworten..
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5  
Alt 03.10.2016, 22:15:48
xandlsoft xandlsoft ist offline
Anfänger
 
Registriert seit: Oct 2016
Alter: 51
Beiträge: 3
AW: Subquery od. andere Lösung...?

Zitat:
Zitat von vt1816 Beitrag anzeigen
Danke, so ist es verständlicher.


Hast Du Dir mal meinen o.g. Vorschlag dazu angesehen - sollte den ersten Punkt beantworten..
Was soll ich sagen? ***GEnIaL***

Vielen Dank!
Ich war wohl mit meinen MAX/MIN/AVG/COUNT/SUM Operatoren so verblendet, dass ich diesen Lösungsansatz überhaupt nicht verfolgte.

Vielen Dank, mir wurde geholfen ;-)
Juchuhh, mein Projekt läuft!

DANKE an vt1816!
Mit Zitat antworten
  #6  
Alt 03.10.2016, 22:53:54
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Subquery od. andere Lösung...?

Vielen Dank für die Blumen.

Solltest Du weitere Fragen/Probleme haben, weißt Du ja jetzt wo Du Hilfe erhalten kannst.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Stichworte
distinct, group by, subquery


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Andere Möglichkeit als DataTable Lucil PHP Grundlagen 0 26.11.2013 11:31:33
LEFT JOIN oder subquery oder min gibt keine Lösung Sandra MySQLi/PDO/(MySQL) 2 21.04.2010 12:52:38
While schleife variablen vergleichen oder andere Lösung Mantigor PHP Grundlagen 5 29.10.2008 08:05:49
Andere Lösung für switch mit Case Hilfe gesucht plautzer PHP Grundlagen 1 05.01.2005 09:24:02
Seitenwechsel bei If Anweisung... andreaskf PHP für Fortgeschrittene und Experten 14 15.03.2003 00:28:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:40:01 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt