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 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=?
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
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.
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
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 ^^
<?php
$result = $db->query("SELECT * FROM tabelle ORDER BY stimmen DESC LIMIT 0, 3");
echo &result;
?>
Irgendwie so
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?
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
<?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
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>";
}
?>
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.)