php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.07.2005, 17:00  
Gast
 
Beiträge: n/a
Standard Array aus MySQL auslesen und permutieren?

Hallo,
ich hoffe, dies ist nicht das falsche Unterforum, aber die MySQL-Probleme meines Anliegens sind eher die kleineren. Vielmher geht es mir um Arrays und Listen in PHP:

Ich habe vor, die einzelnen Stimmen eines beendeten Votings meines phpBB-Forums in (nicht ganz) zufälliger Reihenfolge in ein Array anzuordnen. Leider habe ich von PHP noch nicht viel Ahnung, von MySQL noch weniger. Der logische Aufbau, also die einzelnen Programmierschritte, kann ich aber formulieren. Vielleicht kann jemand das nach PHP "übersetzen".

1) Lies aus der SQL-Tabelle vote_results die Spalte vote_result aus.
Beginne in Zeile $ANFANG und gehe bis Zeile $ENDE
Die Tabelle könnte z.B. wie folgt aussehen

Code:
|vote_id|vote_option_id|vote_option_text|vote_result|
|-------|--------------|----------------|-----------|
|     1 |            1 | Erdbeer        |         3 |
|     1 |            2 | Vanille        |        13 |
|     1 |            3 | Schokolade     |         7 |
|     2 |            1 | Peter          |         3 |
|     2 |            2 | Gabi           |         1 |
|     2 |            3 | Johannes       |         5 |
|     2 |            4 | Sabrina        |         0 |
|     2 |            5 | Julius         |         2 |
|     3 |            1 | wunderschön!   |         7 |
|     3 |            2 | naja, es geht  |         2 |
|     3 |            3 | unerträglich!  |         3 |
Entsprechend würde ich (von Hand) $ANFANG=4 und $ENDE=8 (ich gehe mal von Indizierung ab 1 aus) festlegen. Schöner wäre es natürlich, wenn ich dem Programm sagen könnte, es solle genau die Spalten mit vote_id = 2 auslesen.

2) Schreibe die ausgelesenen Werte in ein Array $a[]
Dies sähe nun so aus: {3, 1, 5, 0, 2}

3) Fertige nun eine einfache Liste an, in der jeder Wert i von [i]vote_option_id $a-mal wiederholt wird, also: 11123333355
Nachfolger des letzten Elementes soll wieder das erste Element sein, also eine Art "Kreis".

4) Diese Liste soll nun DETERMINISTISCH permutiert werden.
Dazu gebe ich eine bestimmte Zahl vor, um wie viele Schritte jeweils weitergegangen, der Wert in ein Array $b[] geschrieben und das ausgelesene Element aus der Liste entfernt wird. Gebe ich z.B. die Zahl 7 vor und fange am Anfang der Liste an, so muss das Resultat bei JEDEM Aufruf der php-Seite folgendes Array anzeigen: 32153513133

Das wäre es eigentlich schon. Mir fehlt derzeit einfach jegliches Know-How, dies in php- und sql-Syntax zu übersetzen, und - auch wenn das wie eine doofe Ausrede klingt - ich habe leider gerade KEINE Zeit, mich da noch groß einzuarbeiten. Es ist aber trotzdem relativ dringend. Also, wenn von Euch jemand kurz das entsprechende Script anfertigen könnte, wäre ich verdammt froh!

Danke im Voraus!
Thomas
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.07.2005, 13:57  
Gast
 
Beiträge: n/a
Standard

Was bringen Schritt drei und vier?

Wenn du das Ergebnis auslesen willst reicht doch ein einfacher MySQL Aufruf.

Was willst du mit dem Script erzeugen?

Wenn du die Stimmen einfach mal auslesen willst.

PHP-Code:
<?php
$query 
mysql_query("SELECT vote_results FROM `table_votings` WHERE vote_id='2'");

if(
$query){
 
$votes = array();
 while(
$fetched mysql_fetch_array($query)){
  
$votes[] = $fetched[vote_results]; // neues array fuellen
 
}
}

// $votes = {3, 1, 5, 0, 2}
reset($votes);
$list NULL;
while(list(
$value$repeat) = each($votes)){
 for(
$limit 0$limit $repeat; ++$limit)
  
$list .= $value;
}
// implode('', $list) = 11123333355

$jump 7;
$result = array();
$readout 0;
while(
strlen($list) > 0){
 
$readout += $jump;
 
$len strlen($list);

 while(
$readout $len)
  
$readout -= $len;

 
$result[] = substr($list$readout1);
 
$list_a substr($list0$readout-1);
 
$list_b substr($list$readout);

 
$list $list_a.$list_b;
}

echo 
implode(''$result);
// 32153513133 
?>

So muesste es auch gehen.
Hatte das Script nicht getestet, also nur schnell hingeklatscht.
Somit kanns gut sein, dass paar Fehler drin sind ^^

Wenn ja sagste einfach bescheit.

Gruss
 
Alt 24.07.2005, 14:11  
Gast
 
Beiträge: n/a
Standard

Denke du willst ne SQL-Abfrage mit Anfang und Ende. So ists besser:

PHP-Code:
<?php
"SELECT vote_results FROM `table_votings` WHERE vote_id>=$start and vote_id <= $ende"
?>
der rest sollte klappen
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Dynamisch Array aus MySQL mit PHP auslesen. Muuip PHP Tipps 2008 2 26.08.2007 21:19
XML-Seite mit PHP auslesen und in Array speichern SolcoDerman PHP-Fortgeschrittene 11 20.11.2006 14:39
XML datei auslesen und in array schreiben PHP Tipps 2006 10 27.09.2006 13:58
Zweidimensionales Array auslesen u wieder in Array schreiben Lobo PHP Tipps 2006 7 20.04.2006 11:37
Mysql / Array Problem marcels PHP Tipps 2006 10 23.03.2006 18:30
[Erledigt] array im array auslesen PHP Tipps 2006 3 15.03.2006 21:33
Geschwindigkeit: Array vs. MySQL Jacks Rache PHP Tipps 2006 4 13.03.2006 20:45
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
MySql Fels Ã* la "2,43,43,43" zu Array PHP Tipps 2007 2 27.12.2005 15:00
Array in rekursiver Funktion auslesen Gumfuzi PHP Tipps 2007 17 15.11.2005 12:01
[Erledigt] bestimmte ID's auslesen als array PHP Tipps 2007 2 31.10.2005 20:23
Array in Session speichern und wieder auslesen Riot PHP Tipps 2005-2 3 08.07.2005 11:43
jede 2. Zeile aus MySQL Tabelle auslesen PHP Tipps 2004-2 4 09.11.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql array auslesen, php mysql array auslesen, mysql auslesen array, array permutieren, http://www.php.de/php-tipps-2005-2/27397-array-aus-mysql-auslesen-und-permutieren.html, mysql tabelle in array einlesen, mysql auslesen 30 bis ende, mysql als arry auslesen, php xml readout, php liste aus mysql tabelle in zeilen auslesen, array aus mysql, mysql auslesen mit array, mysql php array einlesen, mysql ergebnis in array und wieder auslsesen, permutieren, permutieren von arrays, php mysql_array in xml, mysql in array einlesen, mysql in aray und wieder auslesen, array aus mysql auslesen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.