<b>REGISTER</b>

GFX-Sector - PHP, MySQL


 
GFX-Sector » Coding Area » Webentwicklung » PHP, MySQL » 3 häufigste Antworten aus MySql Tabelle ausgeben » Hello Guest [Login|Register]
Last Post | First Unread Post Print Page | Recommend to a Friend | Add Thread to Favorites

PHP, MySQL

Themen rund um die serverseitige Programmierung mit PHP in Verbindung mit der Datenbanksoftware MySQL
Post New Thread Post Reply

3 häufigste Antworten aus MySql Tabelle ausgeben

     Deutsche Version  English version
Author
Post « Previous Thread | Next Thread »

Dariusch Dariusch is a male
Fingerwischer


Dariusch hat kein Avatar

Registration Date: 01.01.2010
Posts: 31

Spacer
3 häufigste Antworten aus MySql Tabelle ausgeben

3 häufigste Antworten aus MySql Tabelle ausgeben

      

So hi ich bins nochmal fröhlich

ich wollte wissen, ob es eine Möglichkeit gibt die 3 häufigsten Einträge in deiner Datenbank spaltenweise auszugeben ^^

also DB:

id..|frage1|frage2|
1..|antw1.|antw2.|
2..|antw1.|antw1.|

so sieht die im Moment aus

und ich wollte mal fragen ob es dort eine Auswertungsfunktion gibt oder halt nicht
weil die Umfrage beinhaltet ca 50 optionen und da wirds auf dauer ein bisschen unübersichtlich ^^

Also einfach

Frage 1 | Stimmen......| Frage2 | Stimmen
blabla...| 30..............|blabla...| 20
blibla....| 20..............|blibla....| 18
blubb....| 10..............|blubb...| 16

kann mir ja jemand weiterhelfen? geibt es da so einen speziellen Befehl oder muss ich das irgendwie anders lösen?

mfg Dariusch
3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 15:46 Dariusch is offline Search for Posts by Dariusch

quantum quantum is a male
Pfadfinder

Spender


Avatar von quantum

Registration Date: 29.12.2008
Posts: 721
Deviantart: xcracx

Spacer
      

Lass dir den gesamten Datensatz ausgeben, natürlich nach größe sortiert, und beschneide das ganze, sodass du nur die größten 3 Spalten hast.



3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 17:48 quantum is offline Homepage of quantum Search for Posts by quantum

Dariusch Dariusch is a male
Fingerwischer


Dariusch hat kein Avatar

Registration Date: 01.01.2010
Posts: 31

Thread Starter Thread Started by Dariusch
Spacer
      

was meinst du mit beschneiden?

also nochmal zur Tabellenstruktur:
frage = Spaltenname
Antwort ist wüst in der Spalte gespeichert
-> erst sortieren nach Name und dann beschneiden aber wie? ich muss die doch zählen und vergleichen=?

mfg Dariusch

3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 18:01 Dariusch is offline Search for Posts by Dariusch

Fireball Fireball is a male
Boardchef


Avatar von Fireball

Registration Date: 11.11.2006
Posts: 16,325
Classing-Rank: GFX-Sector
Location: Bremen, Deutschland
Program: Adobe Photoshop CS2
Deviantart: oenismaster
Forums: (alle)

Spacer
      

Hallo,

probiere es mal mit folgendem Befehl:

code:
1:
SELECT *,COUNT(antw1) as antw1count FROM NAMEDERTABELLE GROUP BY antw1 ORDER BY antw1count DESC LIMIT 0,3;


<-- für Frage/Antwort 1

code:
1:
SELECT *,COUNT(antw2) as antw2count FROM NAMEDERTABELLE GROUP BY antw2 ORDER BY antw2count DESC LIMIT 0,3;


<-- für Frage/Antwort 2


Ist ungetestet und ich gebe keine Garantie auf Richtigkeit Zunge raus


Zur Info:
COUNT(*) in Verbindung mit GROUP BY zählt die gleichen Datensätze/Felder.
as ant1count ist der neue, temporäre Name der temporären Spalte.
ORDER BY antw1count DESC sortiert das ganze nach antw1count, absteigend
Schließlich LIMIT 0,3 sorgt dafür, dass ab dem nullten Datensatz (= der erste), die ersten 3 angezeigt werden.



3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 20:23 Fireball is offline Homepage of Fireball Search for Posts by Fireball

Dariusch Dariusch is a male
Fingerwischer


Dariusch hat kein Avatar

Registration Date: 01.01.2010
Posts: 31

Thread Starter Thread Started by Dariusch
Spacer
      

Also das müsste cih dann für jede einzelne Antwortmöglichkeit machen ja?

gibt es da auch eine allgemeine Lösung? weil ich hab ca 50 Antwortmöglichkeiten und das wäre ein bisschen aufwendig

geht das auch einfacher?


so sieht die Tabelle aus
Spaltenname ist die Frage in dem Fall wer hat das größte allgemeinwissen
dann wählen die user aus und die Namen werden in die Tabelle gespeichert
so die Namen die da drin gespeichert werden kann man aus ner liste auswählen -> die Namen der Stufe -> alle 100 auf männlich und weiblich geteilt

gibts da nicht was allgemeines?
ah und ich kann keine funktionen benutzen hab ich noch nie und weiß nicht wie das geht fröhlich

für die Möglichkeit von Fireball würde ja so aussehen das ich jede Frage einzen auswerten müsste, was kein thema wäre, wenn das nur ein paar antwortmöglichkeiten wären aber das sind über 50 Stück bei ca 100 Fragen also da kommt n bisschen was zusammen ^^

mfg Dariusch

3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 21:24 Dariusch is offline Search for Posts by Dariusch

quantum quantum is a male
Pfadfinder

Spender


Avatar von quantum

Registration Date: 29.12.2008
Posts: 721
Deviantart: xcracx

Spacer
      

php:
1:
2:
3:
4:
<?php 
$result $db->query("SELECT * FROM tabelle ORDER BY stimmen DESC  LIMIT 0, 3"); 
echo &result;
?>


Irgendwie so großes Grinsen

Aber wenn man das anmerken darf, du hast eine scheiss Tabellenstruktur. Wo sind die Stimmen?

ich würde die so strukturieren:

Name-der--zu-wählenden-person | stimmen

Und wenn du nach deiner abfrage das ganze abschickst, prüfst du, ob der name schon enthalten ist, wenn ja dann stimme+1 , ansonsten füge ihn hinzu mit stimme+1.

Ist doch viel einfacher, oder gibt es einen Grund, warum du das Userspezifisch machen möchtest?
Wenn das sein muss, könntest du die gewählten Namen in einer zweiten Tabelle zusammenzählen?



3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 22:18 quantum is offline Homepage of quantum Search for Posts by quantum

Dariusch Dariusch is a male
Fingerwischer


Dariusch hat kein Avatar

Registration Date: 01.01.2010
Posts: 31

Thread Starter Thread Started by Dariusch
Spacer
      

die Stimmen werden gar nicht Ausgegeben bisher ^^
wollte das durch eine Abfrage machen großes Grinsen

und deinen Code versteh ich grad nicht ^^ da wird doch im Moment nichts gezählt oder?

3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 22:38 Dariusch is offline Search for Posts by Dariusch

quantum quantum is a male
Pfadfinder

Spender


Avatar von quantum

Registration Date: 29.12.2008
Posts: 721
Deviantart: xcracx

Spacer
      

Zählen =/

Ich ordne die reihen nach den stimmen und limitiere die ausgabe auf 3 reihen. Ich brauche gar nicht zu zählen Wink



3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 22:50 quantum is offline Homepage of quantum Search for Posts by quantum

Dariusch Dariusch is a male
Fingerwischer


Dariusch hat kein Avatar

Registration Date: 01.01.2010
Posts: 31

Thread Starter Thread Started by Dariusch
Spacer
      

hätte ich das im Vornhinein gewusst, dann hätt ich das Problem jetzt nich großes Grinsen
werds mir aber merken und beim nächsten Mal besser machen großes Grinsen

3 häufigste Antworten aus MySql Tabelle ausgeben 04.01.2010 23:01 Dariusch is offline Search for Posts by Dariusch

quantum quantum is a male
Pfadfinder

Spender


Avatar von quantum

Registration Date: 29.12.2008
Posts: 721
Deviantart: xcracx

Spacer
      

Funktioniert es denn? Wie machst du es jetzt? Würde mich mal interessieren Wink

Und denk daran ein [gelöst] vor den Threadtitel zu schieben, dann sieht jeder, dass das Problem gelöst ist smile



3 häufigste Antworten aus MySql Tabelle ausgeben 05.01.2010 15:24 quantum is offline Homepage of quantum Search for Posts by quantum

Dariusch Dariusch is a male
Fingerwischer


Dariusch hat kein Avatar

Registration Date: 01.01.2010
Posts: 31

Thread Starter Thread Started by Dariusch
Spacer
      

das ist mein Code:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

<?php 
include ("../db.php");

$result mysql_query("SELECT * FROM `Umfrage_01` ORDER BY `Umfrage_01`.`mAbi` DSEC LIMIT 0 , 3");    

echo $result;
?>



und nichts gibt er mir aus -.-
den SQl befehl hab ich direkt aus der Datenbank entnommen also Phpmyadmin wenn ich die Tabelle einfach sortieren lasse

3 häufigste Antworten aus MySql Tabelle ausgeben 05.01.2010 21:12 Dariusch is offline Search for Posts by Dariusch

quantum quantum is a male
Pfadfinder

Spender


Avatar von quantum

Registration Date: 29.12.2008
Posts: 721
Deviantart: xcracx

Spacer
      

<?php
include ("../db.php");

$result = mysql_query("SELECT * FROM `Umfrage_01` ORDER BY `mAbi` DSEC LIMIT 0 , 3");

echo $result;
?>

so?

kp, ich habe gerade fische auf die augen oO



3 häufigste Antworten aus MySql Tabelle ausgeben 06.01.2010 18:59 quantum is offline Homepage of quantum Search for Posts by quantum

Dariusch Dariusch is a male
Fingerwischer


Dariusch hat kein Avatar

Registration Date: 01.01.2010
Posts: 31

Thread Starter Thread Started by Dariusch
Spacer
      

das Umfrage.Abi steht bei Phpadmin, wenn ich die Tabelle einfach ausgeben lasse
statt der 3 steht dann am ende aber 30 und das wird einfach ausgegeben und nicht schon gezählt, das ist mein Problem fröhlich

gezäht wird da ja im Moment nichts fröhlich

3 häufigste Antworten aus MySql Tabelle ausgeben 06.01.2010 19:02 Dariusch is offline Search for Posts by Dariusch

Fireball Fireball is a male
Boardchef


Avatar von Fireball

Registration Date: 11.11.2006
Posts: 16,325
Classing-Rank: GFX-Sector
Location: Bremen, Deutschland
Program: Adobe Photoshop CS2
Deviantart: oenismaster
Forums: (alle)

Spacer
      

quote:
Original von Dariusch
das ist mein Code:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

<?php 
include ("../db.php");

$result mysql_query("SELECT * FROM `Umfrage_01` ORDER BY `Umfrage_01`.`mAbi` DSEC LIMIT 0 , 3");    

echo $result;
?>



und nichts gibt er mir aus -.-


Richtig.
Das liegt daran, dass mysql_query einen Rückgabewert von TRUE oder FALSE hat smile
Um das Ergebnis ausgeben zu lassen, solltest du noch ein mysql_fetch_row verwenden bzw. das ganze in eine while Schleife per mysql_fetch_array ausgeben.

Beispiel:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:

<?php 
include ("../db.php");

$result mysql_query("SELECT * FROM `Umfrage_01` ORDER BY `Umfrage_01`.`mAbi` DSEC LIMIT 0 , 3");    

while ($row mysql_fetch_array($result)) {
  echo $row['FELDNAME']."<br>";
}

?>



3 häufigste Antworten aus MySql Tabelle ausgeben 07.01.2010 19:08 Fireball is offline Homepage of Fireball Search for Posts by Fireball
 
Spacer
   
GFX-Sector
unregistered


 hat kein Avatar


Spacer

Have you enjoyed this topic?


If you were enjoying this post and if you keen on reading more interesting stuff then do not hesitate to complete the free sign up.

After the free registration you will gain access to all areas and you will be able to communicate with other artists from all over the world.

In addition you will benefit from our Photoshop and coding section as well as from our huge (hundreds of gigabytes) free resource section where you can find everything you will need to be a successful (web) designer/artist.

Sign up now and enjoy the advantages as a registered member.

(This website will be ad-free after a complete free sign up.)

New Post 07.01.2010 19:08  
Tree Structure | Board Structure
Post New Thread Post Reply
GFX-Sector » Coding Area » Webentwicklung » PHP, MySQL » 3 häufigste Antworten aus MySql Tabelle ausgeben

Similar topics to 3 häufigste Antworten aus MySql Tabelle ausgeben
Thread
SotW Auswertung 29.8 -5.9 (Forum: SOTW-Abstimmungen)
Gegenüber ein Pinkes aus o.O (Forum: Signaturen/Avatare)
[Frage] Aus einem Photo rendern (Forum: Fragen & Probleme)
Survey: SotW Auswertung 12.03 - 18.03 (Forum: SOTW-Abstimmungen)
Hausaufgaben!? (Forum: Feedback)