php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.04.2011, 16:22  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Pack deine MySQL-Daten zunächst in ein mehrdimensionales Array - und vergebe dabei Schlüssel derart, dass du per Zugriff mittels isset prüfen kannst, ob für den jeweiligen Nutzer und die jeweilige Woche/Datum ein Eintrag existiert.

Mache die Ausgabe der Tabellzeilen unabhängig davon in einer zweiten Schleife (for bietet sich an) - die erzeugt für jede Woche eine Tabellenzelle, und schaut dabei auch noch in deinem Array nach, ob es einen entsprechenden Eintrag gibt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.04.2011, 16:42  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

1. Alle Daten "as is" in ein Array
2. Datumsspalte (DISTINCT) in ein eigenes Array, das werden die Spalten deiner Ausgabetabelle.
3. Für alle User aus 1. -> Daten per User zusammensuchen und in ein neues Array (danach braucht man das Array aus 1. nicht mehr)

Jetzt kannst du für jeden Eintrag aus 3. die jeweilige Zeile aufbauen, dazu alle Werte aus 2. durchlaufen und nachschauen, ob für den aktuellen User ein Wert zu diesem Datum vorliegt.

grob angedeutet:
PHP-Code:

$array2 
= array('14-4-2011''15-4-2011');


$array3 = array(
'User1' => array('15-4-2011' => 0.01),
'User2' => array('15-4-2011' => 0.04),
'User3' => array('14-4-2011' => 0.03'15-4-2011' => 0.07),
'User4' => array('14-4-2011' => 0.02'15-4-2011' => 0.02)
);

// Kopfzeile
echo '         | '.implode(' | ',$array2)."\n";
// alle User durchlaufen
foreach ($array3 as $username => $uservalues) {
  
// Benutzername in Spalte 0
  
echo $username.' | ';
  
// und hier prüfen, ob für das aktuelle Datum ein Wert vorliegt
  
foreach($array2 as $date) {
    if (
array_key_exists($date$uservalues)) echo $uservalues[$date]; // Wert vorhanden
    
else echo ' - '// kein Wert vorhanden
    
echo ' | '// nächste Spalte...
  
}
  echo 
"\n"

__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 15.04.2011, 16:50  
Neuer Benutzer
 
Registriert seit: 15.04.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
MCBurner befindet sich auf einem aufstrebenden Ast
Standard

Hui okay. Das muss ich jetzt erstma kapieren und dann umsetzen Aber Danke schon mal
MCBurner ist offline   Mit Zitat antworten
Alt 15.04.2011, 17:42  
Neuer Benutzer
 
Registriert seit: 15.04.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
MCBurner befindet sich auf einem aufstrebenden Ast
Standard

Ok.... da brauch' ich noch länger zum kapieren. Ich denke was der vorgeschlagene Code machen soll hab ich soweit verstanden. Allerdings sind "$array2" und "$array3" in meinem Fall ja wieder einfache also eindimensionale Arrays, die als Ergebnis von SQL Abfragen vorliegen.

Also für die Ermittlung der Wochen habe ich die Sache bereits so umgebogen.

Code:
$hole_wochen = mysql_query("SELECT week FROM tabelle1 GROUP BY week ORDER BY week ASC");
$wochen_array = array();
while($row=mysql_fetch_row($hole_wochen)) {
  $wochen_array[] = $row[0];
}
Also was im Beispiel das $array2 ist, ist bei mir das $wochen_array[]. Klappt auch soweit ganz gut, zumindest wenn ichs mit nem var_dump kontrolliere.

Ich scheitere aber noch am zweiten Teil.
MCBurner ist offline   Mit Zitat antworten
Alt 15.04.2011, 19:11  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
1. Alle Daten "as is" in ein Array
SELECT * FROM tabelle -> $array1
Zitat:
2. Datumsspalte (DISTINCT) in ein eigenes Array, das werden die Spalten deiner Ausgabetabelle.
SELECT DISTINCT <Datumsspalte> FROM Tabelle -> $array2
(Kann man auch aus $array1 generieren)

array3 wird aus array1 gebildet, in etwa so (ungetestet):
PHP-Code:
$array3=array();
foreach(
$array1 as $row) {
  
// $array3[ username ] [ Datum ] [ Wert ]
  
$array3[$row['user']][$row['datum']] = $row['wert'];

Das bedingt, das ein User immer nur genau 1 Wert pro Datum in der DB hat, ansonsten überschreibt man sich die Werte (in diesem Fall könnte man aufsummieren).
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 16.04.2011, 22:31  
Neuer Benutzer
 
Registriert seit: 15.04.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
MCBurner befindet sich auf einem aufstrebenden Ast
Standard

Ich hab das noch immer nicht ganz begriffen. Aber 24 Stunden später habe ich mir mit einer alternativen Lösung vorerst helfen können. Ich werd sie hier später auch gern posten.

Wichtiger war mir: vielen Dank für die Hilfestellungen. Bin damit auf jeden Fall weiter gekommen.
MCBurner ist offline   Mit Zitat antworten
Antwort


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
[Erledigt] Daten in MYSQL schreiben Desty PHP Tipps 2010 11 30.09.2010 11:23
mySQL Tabelle ausgeben und Tabellendarstellung je nach Inhalt anpassen Hoffi PHP Tipps 2010 10 26.07.2010 23:00
Array nur bestimmte Stelle ausgeben rolloff PHP Tipps 2010 2 16.07.2010 16:52
[Erledigt] MySQL, Spalten umbenennen, was passiert mit Indexen und Daten? Donald Datenbanken 2 09.04.2010 12:42
[Erledigt] MySQL - Bestimmte Anzahl Daten pro Datensatz Delirius Datenbanken 11 27.02.2010 13:44
[Erledigt] Daten aus MySQL Datenbank lesen logicalmind PHP Tipps 2010 25 10.02.2010 22:36
Nach Formularabfrage bestimmte Daten ausgeben Gravenstein PHP Tipps 2009 7 15.11.2009 20:51
ausgeben von mehreren tabellen mysql SpecialFighter PHP Tipps 2009 9 15.10.2009 18:41
[Erledigt] Bestimmte Daten aus MySQL Tabelle mit vorhergehendem Ergebnis auslesen ? kreativepassion PHP Tipps 2009 6 13.06.2009 13:35
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
MySQL Daten in sichtbarer Tabelle ausgeben PHP Tipps 2006 6 14.03.2006 14:33
nur bestimmte anzahl an daten per mysql auslesen PHP Tipps 2005 4 13.05.2005 15:45
Mysql daten in Selct element einfügen PHP Tipps 2005 4 08.03.2005 17:44
Mysql daten in Selct element einfügen PHP Tipps 2005 5 08.03.2005 16:48
Nur bestimmte daten aus einer tabelle auslesen. Datenbanken 15 28.02.2005 12:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
date auf bestimmte zelle, sql ausgabe in eindimensionalem array, daten einer bestimmten zeile hinzufügen mysql, sql datensatz mit bestimmten datum, php mysql zugriff auf einzelne zelle, sql: datensätze in einer zeile ausgeben, mysql nur bestimmte datensätze durchsuchen, mysql wert aus zweiter zeile ausgeben, mysql array mehrere datensätze ausgeben, php array nur bestimmte zeilen ausgeben, datum in spalte schreiben php, $date = zeile mysql php, daten in bestimmter zeile ausgeben, mysql alle werte mit datum ausgeben, php mysql datensatz suchen und spalte ausgeben, php bestimmte anzahl datensätze ausgaben, php mysql tabelle einzelne rows ausgeben, mysql datensätze zeilenweise, mysql bis zu bestimmter zeile ausgeben, php bestimmte zeilenanzahl ausgeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:36 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