php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.01.2012, 00:18  
Neuer Benutzer
 
Registriert seit: 12.01.2012
Beiträge: 6
PHP-Kenntnisse:
Anfänger
frecker94 befindet sich auf einem aufstrebenden Ast
Standard

Hab noch drangesessen, das ein oder andere noch geändert und denke es ist jetzt besser...werde euch die tage den code hochladen...aber wohl erst ab Sonntag irwann...
frecker94 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.01.2012, 00:56  
Neuer Benutzer
 
Registriert seit: 12.01.2012
Beiträge: 6
PHP-Kenntnisse:
Anfänger
frecker94 befindet sich auf einem aufstrebenden Ast
Standard

Oke,
Ich hoffe, dass mir noch einmal jemand helfen kann. Leider bin ich nicht so gut vorangekommen. Auch merke ich immer wieder, dass mein Verständnis eben doch noch nicht so weit reicht. Daher tut es mir leid, wenn ich teils die Bemühungen nicht richtig würdigen kann.

PHP-Code:
$zahl "0";
$query mysql_query("SELECT kurs FROM kurse_schueler WHERE schueler = '$schueler_id'");
$kurse = array();
echo 
"Belegte Kurse: ";
while(
$row mysql_fetch_array($query))
    {
    
$kurs $row['kurs'];
    echo 
$kurs.", ";
    
$zahl $zahl +1;
    
$kurse[$zahl] = $kurs;
    }
print_r ($kurse); 
Mit dem print kann ich mir nun die belegten Kurse ausgeben lassen. Ich habe also alle belegten Kurse in einem Array abgespeichert. Auch einzelne Werte des Arrays kann ich ausgeben lassen.

Nun müsste ich eine Schleife durchlaufen in der ein MySQL-Befehl ausgeführt wird. Da In der 4. Tabelle ja die kurs_id enthalten ist könnte man diese Zeilen ja abfragen und nach stundensystem sortiert ausgeben lassen. Nur komme ich mit dem Aufbau dieser Schleife irgendwie nicht zurecht. Auch frage ich mich wie ich die Ausgabe meiner Anfrage abspeichere, da diese mir ja mehrere Datenbank-Felder ausgeben soll..

PHP-Code:
"SELECT stundensystem, raum, kurs_id FROM stundenplaene WHERE kurs_id = 'kurse[$i]'" 
Zwischen den beiden Schleifen lässt sich die Anzahl der belegten Kurse zählen. Diese Zahl bestimmt die Anzahl der Schleifendurchgänge. In jedem Durchgang sollen nun die Werte der 3 Felder(optional noch per JOIN Fach und Lehrer) für jede Stunde des Kurses abgefragt werden.

Auch stelle ich mir die Frage, wie ich diese Werte nun weiter verarbeiten kann.

Eine einfache Idee war es, den Wert des Feldes stundensystem als Bezeichner im Array zu verwenden. Mit folgender Tabelle könnte man das ganze dann ausgeben:

PHP-Code:
echo "<table>";
echo 
"<tr><th>Montag</th><th>Dienstag</th><th>Mittwoch</th><th>Donnerstag</th><th>Freitag</th></tr>";
echo 
"<tr><td>".$plan[101]."</td><td>".$plan[201]."</td><td>".$plan[301]."</td><td>".$plan[401]."</td><td>".$plan[501]."</td><tr>";
echo 
"<tr><td>".$plan[102]."</td><td>".$plan[202]."</td><td>".$plan[302]."</td><td>".$plan[402]."</td><td>".$plan[502]."</td><tr>";
echo 
"<tr><td>".$plan[103]."</td><td>".$plan[203]."</td><td>".$plan[303]."</td><td>".$plan[403]."</td><td>".$plan[503]."</td><tr>";
echo 
"<tr><td>".$plan[104]."</td><td>".$plan[204]."</td><td>".$plan[304]."</td><td>".$plan[404]."</td><td>".$plan[504]."</td><tr>";
echo 
"<tr><td>".$plan[105]."</td><td>".$plan[205]."</td><td>".$plan[305]."</td><td>".$plan[405]."</td><td>".$plan[505]."</td><tr>";
echo 
"<tr><td>".$plan[106]."</td><td>".$plan[206]."</td><td>".$plan[306]."</td><td>".$plan[406]."</td><td>".$plan[506]."</td><tr>";
echo 
"<tr><td>".$plan[107]."</td><td>".$plan[207]."</td><td>".$plan[307]."</td><td>".$plan[407]."</td><td>".$plan[507]."</td><tr>";
echo 
"<tr><td>".$plan[108]."</td><td>".$plan[208]."</td><td>".$plan[308]."</td><td>".$plan[408]."</td><td>".$plan[508]."</td><tr>";
echo 
"</table>";
?> 
D.h. die restlichen Daten wie Raum, Kurs_id, (fach und Lehrer) würden im dem Bezeichner zugehörigen Feld im Array als ein Wert gespeichert sein.
Vielleicht möchte mir jemand zu diesem Zwischenschritt und der Schleife noch unter die Arme greifen.

Liebe Grüße frecker
frecker94 ist offline   Mit Zitat antworten
Alt 16.01.2012, 01:58  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
@nikosch: Ob 1 Feld mit beiden Werten kombiniert oder 2 Felder spielt letztlich keine große Rolle...Ausserdem war das die Idee unseres Lehrers das mit diesem 3-stelligen Zahlensystem zu machen
http://de.wikipedia.org/wiki/Normali...form_.281NF.29

Kannst du auch gerne deinem Lehrer zeigen. Nehmen wir mal an du willst alle Stundenplan Einträge der erste und zweiten Stunde haben, wie bekommst du die? Oder alle Montagseinträge...?

(bitte ein Beispiel OHNE "LIKE" ).

Zu deinem Abfrageproblem: SQL Befehle in Schleifen sind unperformant. Nutze lieber JOINS.
http://aktuell.de.selfhtml.org/artik...nbanken/joins/

Dann kannst du dir bequem direkt von der Datenbank folgendes Array holen:
PHP-Code:
array(
  
'kurs_id' => ...,
  
'fach' => ...,
  
'lehrer' => ...,
  
'stunden_id' => ...,
  
'raum_id' => ...,
); 
für jeden Datensatz.

Das Array dann nach:
PHP-Code:
array(
   
stunden_id => raum.fach.lehrer
); 
umzuformen ist in einer einfachen Schleife erledigt.

Z.B.:

PHP-Code:
$qry mysql_query("your query with joins and ORDER BY...");
$plan = array();
while (
$row mysql_fetch_array($qry)) {
   
$plan[$row['stunden_id']] = $row['raum_id'].' / '.$row['fach'].' '.$row['lehrer'];

__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

Geändert von Dark Guardian (16.01.2012 um 02:02 Uhr).
Dark Guardian 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


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