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 ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign 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 > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.11.2005, 16:16:07
php_anfaenger php_anfaenger ist offline
Anfänger
 
Registriert seit: Nov 2005
Beiträge: 8
Sortierung eines Umfrageergebnisses

Hallo an Alle!

Habe folgendes Problem: Bei der Anzeige des Ergebnisses soll die Antwort, die die meisten Stimmen bekommen hat natürlich ganz oben stehen - also eine absteigende Reihenfolge. Gleichzeitig soll aber die Platzierung in aufsteigender Reihenfolge angezeigt werden.

Vielleicht kann mir jemand einen tip geben oder mir erklären warum die Platzierung absteigend ist und nicht aufsteigend?

Hier mal ein Bild:
http://www.bremissimo.de/img/tabelle.gif

Hier mal das Script (die Daten werden in .txt gespeichert):

<?PHP
//Platzierung
$aufz="platz.txt"; // datei mit fortlaufender Nummerierung 1-50

//Display results
$counts=file($temp); //array aller gezählten Stimmen aus der temp.txt
arsort ($counts); //sortierung des arrays, absteigend
while (list ($line_num, $line) = each ($counts)) // schleife
{
@$percent = "$line"/"$all"*"100";
$percent = round($percent , 1);
$countanswer = file($dbanswer);
$line = trim($line);
$rank = file($aufz);
$result= "
<tr>
<td><font>$rank[$line]</font></td> // PROBLEM STELLE
<td><font>$countanswer[$line_num] <font>($line)</font></td>
<td><font><img src=\"poll.gif\" width=\"$percent\"> $percent% </font></td>

</tr>";
echo $result;
}
?>

Vielen Dank schonmal!
Mit Zitat antworten
  #2  
Alt 02.11.2005, 16:29:15
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Sortierung eines Umfrageergebnisses

Entweder du erhöhst eine Variable bei jedem Durchlauf der Schleife um 1 und gibst diese aus oder du ermittelst die Anzahl aller Datensätze vor der Schleife. Dann ist die Platzierung bei jedem Durchlauf $numall - $rank[$line] + 1.
Mit Zitat antworten
  #3  
Alt 02.11.2005, 17:01:14
php_anfaenger php_anfaenger ist offline
Anfänger
 
Registriert seit: Nov 2005
Beiträge: 8
AW: Sortierung eines Umfrageergebnisses

Hallo xabbuh,

vielen Dank für die Antwort. Die Lösung mit der Erhöhung um 1 pro Durchlauf hört sich gut an. Hab das mal versucht umzusetzen, leider wird dann an jeder stelle Platz 1 angezeigt. Kannst du mir da nochmal einen Tip geben?

Danke!


<?PHP
//Platzierung
$rank = "0";

//Display results
$counts=file($temp); //array aller gezählten Stimmen aus der temp.txt
arsort ($counts); //sortierung des arrays, absteigend
while (list ($line_num, $line) = each ($counts)) // schleife
{
@$percent = "$line"/"$all"*"100";
$percent = round($percent , 1);
$countanswer = file($dbanswer);
$line = trim($line);
$numall = "$rank"+"1";
$result= "
<tr>
<td><font>$numall</font></td> // PROBLEM STELLE
<td><font>$countanswer[$line_num] <font>($line)</font></td>
<td><font><img src=\"poll.gif\" width=\"$percent\"> $percent% </font></td>

</tr>";
echo $result;
}
?>
Mit Zitat antworten
  #4  
Alt 02.11.2005, 17:53:50
php_anfaenger php_anfaenger ist offline
Anfänger
 
Registriert seit: Nov 2005
Beiträge: 8
AW: Sortierung eines Umfrageergebnisses

Oder vielleicht weiss jemand wie ich die Werte aus der Datei platz.txt (in der die Zahlen von 1 bis 50 stehen) nacheinander auslesen kann. Also das beim erten schleifendurchlauf die 1 erscheint beim zweiten die 2 etc.

wenn ich das so versuche:

<td><font>$rank</font></td> // PROBLEM STELLE

dann wird immer das wort ARRAY ausgegeben.

Kann mir bitte jemand helfen?
Mit Zitat antworten
  #5  
Alt 02.11.2005, 18:45:10
Stevie B. Stevie B. ist offline
Anfänger
 
Registriert seit: Sep 2005
Beiträge: 82
Stevie B. eine Nachricht über ICQ schicken
AW: Sortierung eines Umfrageergebnisses

Klar, $rank ist ja auch immer 0. Also musst Du $rank = $rank + 1; nehmen und dann $rank ausgeben.
Mit Zitat antworten
  #6  
Alt 02.11.2005, 18:51:07
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Sortierung eines Umfrageergebnisses

Zitat:
Zitat von Stevie B.
Also musst Du $rank = $rank + 1; nehmen und dann $rank ausgeben.
Oder gleich print ++$rank schreiben.

Zitat:
Zitat von php_anfaenger
wenn ich das so versuche:

<td><font>$rank</font></td> // PROBLEM STELLE

dann wird immer das wort ARRAY ausgegeben.
Wie immer, wenn du auf Arrays zugreifen willst, musst du immer in eckigen Klammern das entsprechende Element angeben. Dafür brauchst du aber eine Zählervariable, die sich bei jedem Durchlauf inkrementiert und da ist das Array dann überflüssig, da du nur noch den Zähler ausgeben muss.
Mit Zitat antworten
  #7  
Alt 04.11.2005, 20:13:49
php_anfaenger php_anfaenger ist offline
Anfänger
 
Registriert seit: Nov 2005
Beiträge: 8
AW: Sortierung eines Umfrageergebnisses

Hallo tausend dank für die Antworten!

Hab noch eine kleine zusatzfrage:

Ich lasse das array (besteht nur aus zahlen) absteigend sortieren, mit dem befehl arsort. Leider werden dann die zahlen nicht natürlich sortiert, sondern 3, 22, 2, 11, 1 usw.
Zum natürlichen sortieren gibt es den befehl natsort, doch leider funktioniert der nur aufsteigend. Gibt es auch einen befehl der natürlich und absteigend sortiert?

<?PHP
arsort ($counts); //sortierung des arrays, absteigend
?>

Danke schonmal!
Mit Zitat antworten
  #8  
Alt 04.11.2005, 21:32:27
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Sortierung eines Umfrageergebnisses

Einfach mit natsort() aufsteigend sortieren und anschließend die Reihenfolge mit array_reverse() umdrehen. Oder du sortierst mit Hilfe von usort().
Mit Zitat antworten
  #9  
Alt 05.11.2005, 18:00:59
php_anfaenger php_anfaenger ist offline
Anfänger
 
Registriert seit: Nov 2005
Beiträge: 8
AW: Sortierung eines Umfrageergebnisses

Danke für die Antwort.
Mit usort funktioniert es leider nicht, weil dann die einträge komischerweise nach dem nach den index zahlen sortiert werden.
Mit array_reverse funzt es leider auch nicht. hab es wie unten zu sehen in den code gebastelt, leider wird die reihenfolge nicht umgedreht, sondern die Werte werden aufsteigend sortiert als wenn der befehl gar nicht da stehen würde.

Oder ist das nicht richtig eingefügt?

<?PHP
$counts=file($temp);
natsort ($counts);
array_reverse ($counts);
while (list ($line_num, $line) = each ($counts))
{
@$percent = "$line"/"$all"*"100";
$percent = round($percent , 1);
$balken = "$percent"*"3";
$countanswer = file($dbanswer);
$rank = $rank + 1;
$line = trim($line);
?>
Mit Zitat antworten
  #10  
Alt 06.11.2005, 18:36:49
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Sortierung eines Umfrageergebnisses

Zitat:
Zitat von php_anfaenger
Mit usort funktioniert es leider nicht, weil dann die einträge komischerweise nach dem nach den index zahlen sortiert werden.
Wie hast du usort() denn verwendet?

Zitat:
Zitat von php_anfaenger
array_reverse ($counts);
Bei array_reverse() erfolgt die Übergabe des Arrays im Gegensatz zu den Sortierfunktionen nicht als Referenz. Deswegen musst du den Rückgabewert von array_reverse() aufnehmen:
PHP-Code:
<?php
    $counts 
array_reverse($count);
?>
Mit Zitat antworten
Antwort


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

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
Sortierung über zwei Tabellen hinweg dennisdd MySQLi/PDO/(MySQL) 1 23.07.2005 14:01:30
"Natürliche" Sortierung möglich? Skyman MySQLi/PDO/(MySQL) 8 09.06.2004 00:23:58
2-stufige Sortierung Gweilo PHP für Fortgeschrittene und Experten 4 23.05.2003 13:15:26
im iframe umgekehrte Sortierung beim Opera Ernesto PHP für Fortgeschrittene und Experten 1 30.10.2002 15:15:13
MySQL Sortierung nach ZAHLEN Ernesto PHP für Fortgeschrittene und Experten 2 24.10.2002 14:11:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:08:23 Uhr.


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


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