Sendeplan Script mit Denkfehler*g*

Hallo ihr lieben,
Find ich ne super Sache hier. Habe schon einiges hilfreiches gefunden hier =)

Jetzt habe ich allerdings ein kleines Problem.

Ich mag / habe einen Sendeplan auf einfachste weise erstellt.
Nur habe ich dadurch ein kleinen Denkfehler.

Der Code sieht wie folgt aus:
RAUSGENOMMEN AUS DA VERALTET :wink:

Mein Problem ist dass er nicht nur ein Sendeplan erstellt da ich es in der while schleife habe sondern soviele wie einträge in der datenbank sind.
Zusätzlich ist in jedem sendeplan den er ja denn anzeigt aber nur ein eintrag drin xD

Die Datenbank ist wie folgt:

id - feldnr - name - wt - kw

Ich hoffe man kann mir hier bei behilflich sein =)

Mit freundlichem Gruß

Micha

Sieht ziemlich kompliziert aus, so ein ähnliches Problem hatte ich auch mal, damals ging es um eine Karte, wo man nur die Koordinaten des Feldes in der Mitte wusste, alles andere nicht…
Nun zum Problem:
Du könntest dir einerseits eine Funktion schreiben, die die angegebenen Angaben prüft, und falls was da ist, das Ausgibt.

[code]function abfrage($feldnr,$kw,$wt){
$sql = „SELECT * FROM Sendplan WHERE feldnr = '“ . $feldnr . „’ && kw = '“ . $kw . „’ && wt = '“ . $wt . „’“;
$query = mysql_query($sql);
if(mysql_num_rows($query)){
while($data = mysql_fetch_array($query,MYSQL_ASSOC){
return $data[‚name‘];
}
}

[/code]
[ich verstehe nicht ganz, was feldnr bewirkt, kann sein dass ich sie falsch verwende]
Und dann in jedem Tabellenfeld diese Funktion mit entsprechenden angaben aufrufen:

echo '<td>' . abfrage(8,6,'dienstag') . '</td>';

Oder du verschachtelst mehrere while bzw. for Schleifen und prüfst mit zählvariablen, ob die spalte voll ist und wechselst so in die nächste.
Dazu hb ich jetzt kein Beispiel, denn

  1. Das erste ist mehr Copy&Paste Arbeit
  2. Das Zweite ist mehr Denkarbeit und deutlich komplizierter…falls du es so umsetzen willst, ohne Fleiß kein Preis :ps:

Ich hoffe ich habe dein Problem richtig verstanden.
Mfg
Mgier

Hey, vielen Dank für deine Antwort. Ich werde damit ein wenig basteln.
Zu deiner Frage: Feldnr habe ich nur geschrieben damit er weiß zu welcher Uhrzeit er es eintragen bzw eher ausgeben soll. Deshalb habe ich immer festgelegt (if feldnr == 1) oder so.

Nun zu dem hauptproblem: Er gibt ja auch wenn ich zum Beispiel zum test 2 Sendungen habe und diese in die Datenbank eintrage mir zweimal den sendeplan aus allerdings in jedem nur ein feld- Sprich zwei verschiedene sendungen = 2 Sendepläne xD

Die erste Möglichkeit ist die Haupttbelle aus der while Schleife zu nehmen, jedoch werden ja denn die tds immer wiederholt… Ist es vielleicht sinnvoller mir einfach die arbeit zu machen und das alles aus der Datenank auszulesen? Sprich Uhrzeiten, wochentage und eben die Namen der Moderatoren? Dass ich vielleicht eine einzeilie abfrage habe in der whileschleife damit denn es so ausgegeben wird:

00.00.0000 : 12 - 13 Uhr : Moderator so und so
00.00.0000 : 13 - 14 Uhr : Moderator bla und blubb.

Theoretisch wäre das denn doch einfacher. Aber ich will ja wo nichts steht einen Link reinmachen dass unsere Mods sich eintragen können. Allerdings bauche ich denn schon nicht mehr alles in die Datenbank eintragen sondern habe nur 4 - 5 Felder und lasse sie einfach nach datum und uhrzeit sortieren :wink:
Und mache denn zum Bespiel so dass ich die wochentage nummeriere (1 - 2 -3 etc)
und denn einfach sage $T = 1; //Für Montag $kw = ‘6’; // kw versteht sich
Eine if schleife reingehauen mit if T = 1 { suche alles mit wt = 1 und die jeweilige kw die ich oben natürlich vorher errechnen lasse }

Die Tage lasse ich denn einfach weiterblättern per Link.
Zum Bespiel: if ($T != ‘7’) { $T++ } else $T = ‘1’;

Also im Endeffekt so wie du es mir im oberen Beitrag vorgeschlagen hast :wink: =)

Gruß

Michaa

Soo, ich habs jetzt mal so gelöst. Jetzt fehlt mir nur noch das Datum und am wichtigsten:
Der muss die KW und das Datum automatisch errechnen^^.

Mal zur info wie ich es jetzt gelöst habe.

$kw = '8';
$wt = '1';
$zahl = '22';

if ($_GET['tag'] != '') { $wt = $_GET['tag']; }
if ($_GET['zahl'] != '') { $zahl = $_GET['zahl'];

 }

if ($_GET['todo'] == "weiter"){ 
$wt = $_GET['t'];
$zahl = $_GET['zahl'];
if ($wt == '7') { $wt = '1'; 
$zahl = '22';
} 
else {
$wt ++; 
$zahl ++;
}
 }

if ($_GET['todo'] == "back"){ 
$wt = $_GET['t'];
$zahl = $_GET['zahl'];
if ($wt == '1') {

 $wt = '1';
$zahl = '22';

 } 
else {
$wt --; 
$zahl --;

}
 }
if ($wt == '1' ) { $text = 'Montag';  }
if ($wt == '2' ) { $text = 'Dienstag';  }
if ($wt == '3' ) { $text = 'Mittwoch';  }
if ($wt == '4' ) { $text = 'Donnerstag';  }
if ($wt == '5' ) { $text = 'Freitag';  }
if ($wt == '6' ) { $text = 'Samstag';  }
if ($wt == '7' ) { $text = 'Sonntag';  }

$sql2 = "SELECT * FROM Sendeplan ORDER BY zeit"; 
$result2 = mysql_query($sql2) or die(mysql_error()); 
echo "Ausgew&auml;hlter Tag: <b>$text, $zahl.02.2010</b><br><br><a href=\"sendeplan2.php?todo=back&amp;t=$wt&amp;zahl=$zahl\">Vorheriger Tag</a> - <a href=\"sendeplan2.php?todo=weiter&amp;t=$wt&amp;zahl=$zahl\">N&auml;chster Tag</a>";
echo "<br><br>$kw. Kalenderwoche: 22.02. - 28.02. <br>";
echo "<table border=\"1\" cellspacing=\"1\" cellpadding\"1\" width=\"100%\" align=\"center\">";

while ($row2 = mysql_fetch_array($result2)){


$zeit = $row2[zeit];

$sql = "SELECT * FROM Sendeplan2 where time='$zeit' && wt=$wt && kw=$kw"; 
$result = mysql_query($sql) or die(mysql_error()); 
$rowq = mysql_fetch_array($result);
echo "<tr>
<td width=\"40%\"> $row2[zeit] Uhr</td> <td width=\"40%\">"; if ($rowq[name] != ''){ echo "$rowq[name]";} else { if (iMEMBER){ echo "<a href=\"sendeplan2.php?todo=eintragen&amp;zeit=$row2[zeit]&amp;kw=$kw&amp;tag=$wt&amp;date=$row2[zeit]&amp;zahl=$zahl\">Jetzt eintragen!</a>"; } }

echo "</td> <td width=\"50%\">
SHOW</td> </tr>";

}
echo '</table><br><bR>';