Aktueller Monat und SelectBox Auswahl

Hallo,

so jetzt schnall ich nichts mehr!

Was kann ich, oder eben nicht mehr, gebrauchen von meinem PHP-Teil mit den Tabellen?:confused:

Was meinst Du mit //deine Angaben? Weitere $sql Ausgaben oder die Variablen?

Und Deine SQL-Anweisung, funktioniert soweit, aber ich erhalte: MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen)! Obwol es mitndestens eine Zeile geben sollte! Darum wird mir im Tabellenbereich auch angezeigt, "keine Spieledaten"!

Danke

Grazioli
 
Zuletzt bearbeitet:
Hi,

Du musst anfangen, den Code auch zu verstehen, statt das einfach nur zu übernehmen. Hast Du die Abfrage in phpMyAdmin getestet mit Werten für $month und $year, die sicher etwas liefern müssen? Ist der JOIN so überhaupt richtig (ich kenne ja Deine Datenbank gar nicht, war nur ein Beispiel)?

Wenn Du die Abfrage verstanden hättest, wüsstest Du, dass sie Dir die Spieledaten mitsamt der dazugehörigen Kategorien liefern soll und Du deshalb in der Schleife natürlich die Ausgabe der Daten machen sollst.

LG
 
Hallo,

Hast Du die Abfrage in phpMyAdmin getestet mit Werten für $month und $year, die sicher etwas liefern müssen?
ja getestet, aber nicht mit werten gefüllt! Kann ich $year einfach durch eine Zahl ersetzten, um zu testen?

Ist der JOIN so überhaupt richtig (ich kenne ja Deine Datenbank gar nicht, war nur ein Beispiel)?
Ja der ist so richtig!

Wenn Du die Abfrage verstanden hättest, wüsstest Du, dass sie Dir die Spieledaten mitsamt der dazugehörigen Kategorien liefern soll und Du deshalb in der Schleife natürlich die Ausgabe der Daten machen sollst.
Jetzt nach längerem Durchlesen deines Beitrags, habe ich die Abfrage verstanden. Sorry

Gruss Grazioli
 
Hallo,

es geht in phpmyadmin, wenn ich ' . intval($month) . ' und ' . intval($year) . ' mit einer Zahl ersetze! In meiner Funtionsdatei geht dies leider nicht!
PHP:
function GetMaster($config)
	{
		$rows=array();
		$db_conn = mysql_connect($config->host, $config->user, $config->password) or die('Database Server-Connection Failed');
		mysql_select_db($config->db) or die('Database Connection Failed');
		
		// Monat und Jahr aus aktuellem Datum vorbelegen
		$month = date("m");
		$year = date("Y");
		// Monat und/oder Jahr durch GET-Parameter überschreiben, falls gesetzt
		if(isset($_GET['month'])) {
   			$month = $_GET['month'];
		}
		if(isset($_GET['year'])) {
   			$month = $_GET['year'];
		}

		$sql = 'SELECT *
				FROM Spieledatum   
				WHERE MONTH(Spieledatum.date) = ' . intval($month) . '
				AND YEAR(Spieledatum.date) = ' . intval($year) . '
				ORDER BY YEAR( `date` ) DESC , MONTH( `date` ) DESC , DAY( `date` ) DESC , time DESC';
			
				$result = mysql_query($sql, $db_conn) or die(mysql_error() . "<br />\n" . htmlentities($sql));
				while($mission = mysql_fetch_assoc($result)) {

				echo $mission["name"];
    			       echo $mission["category"];
    			        echo $mission["date"];
				echo $mission['shortdescription'];

		}
Wo liegt der Fehler in dieser Funktion?


Gruss Grazioli
 
Zuletzt bearbeitet:
Hi,

es geht in phpmyadmin, wenn ich ' . intval($month) . ' und ' . intval($year) . ' mit einer Zahl ersetze! In meiner Funtionsdatei geht dies leider nicht!
Wo liegt der Fehler in dieser Funktion?

"Geht nicht" ist ungefähr so aussagekräftig, wie "in Hamburg ist 'ne Tür zugefallen".
Du musst auch mitdenken und nicht nur Code kopieren.

Code:
if(isset($_GET['month'])) {
   $month = $_GET['month'];
}
if(isset($_GET['year'])) {
   $month = $_GET['year'];
}

Fällt Dir was auf?
Du hättest das auch gesehen, wenn Du die zusammengesetzte Abfrage testhalber mal ausgegeben hättest, wie ich Dir schonmal geraten habe...

LG

PS.: Wieso fehlt denn da jetzt plötzlich der JOIN?
 
hallo,

Code:
if(isset($_GET['month'])) {
   $month = $_GET['month'];
}
if(isset($_GET['year'])) {
   $month = $_GET['year'];
}
Fällt Dir was auf?
Hätte ich sehen müssen, aber es war recht spät gerstern!

PS.: Wieso fehlt denn da jetzt plötzlich der JOIN?
Nur für Testzwecke, habe ich dies entfernt!

Wenn ich meine Tabele in die Funktions.php unter der DB-Anweisung einfüge läuft diese auch!
PHP:
				$result = mysql_query($sql, $db_conn) or die(mysql_error() . "<br />\n" . htmlentities($sql));
                while($mission = mysql_fetch_assoc($result)) {


	echo '<table>';
	echo '<tr>';
		echo '	<td>';
Wenn ich die Tabellen auf meine Master.php einfüge, erhalte ich die Fehlermeldung: Notice: Undefined variable: mission.
PHP:
$result = mysql_query($sql, $db_conn) or die(mysql_error() . "<br />\n" . htmlentities($sql));
                if(mysql_num_rows($result))
					while($mission = mysql_fetch_assoc($result))
						$missions[sizeof($s)]=$mission;
				return $missions;

Die Master.php sieh so aus:
PHP:
<?php
echo'<div id="frontendmission">';


echo '<table width="100%" align="center">';
echo '<tr>';
echo '<td style="text-align:left; font-size:14px; color:#FF3333; border-color:#000000" scope="col">Spielemonat '.$month.'</td>';
echo '</tr>';
echo '</table>';

if(sizeof(GetMissionsMaster($config))==0)
	echo '<div class="box1">keine Spieledaten vorhanden</div>';
else
{
?><br /><br />
	<table cellpadding="5" cellspacing="0" width="100%" >
  <tr>
  	<th>
    	<?php echo Name_TableHeadCategory; ?>
    </th>
    <th>
    	<?php echo Name_TableHeadMissionname; ?>
    </th>
    <th>
    	<?php echo Name_TableHeaddatetime; ?>
    </th>
    <th>
    	<?php echo Name_TableHeadShortdescription; ?>
    </th>
  </tr>
<?php
	echo '<table cellpadding="5" cellspacing="0" width="100%" >';	
	echo '<tr>';
		echo '	<td>';
		if(isset($mission['color'])&&($mission['color']!="")) 
		
		// &nbsp;&nbsp; in der nächsten Zeile nach /span> eingefügt! Abstand zwischen Farbe und Einsatzart
			echo '<span style="background:#'.$mission['color'].';">&nbsp;&nbsp;</span>&nbsp;&nbsp;';
		//----------------------------------------------------------
		else
			echo '<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>';
			echo $mission['name'];
		echo '	</td>';
		echo '	<td>';
			echo $mission['missionname'];
		echo '	</td>';
		echo '	<td>';
		//Frontend Datum von $mission['alarmdate'] auf SetDateForLanguage($mission['alarmdate']) geändert!!
			echo  SetDateForLanguage($mission['alarmdate']) .' '.ToShortTime($mission['alarmtime']);
		//------------------------------------------------------------------------------------------------
		echo '	</td >';
		echo '	<td>';
			echo $mission['shortdescription'];
		echo '	</td>';

		echo '</tr>';
	echo '</table>';
	}		
?>
</div>

Die Tabellenstruktur wird angezeigt, aber keine Inhalte, sondern nur Fehlermeldungen: Notice: Undefined variable: mission in

Danke
 
Hi,

Wenn ich die Tabellen auf meine Master.php einfüge, erhalte ich die Fehlermeldung: Notice: Undefined variable: mission.
PHP:
$result = mysql_query($sql, $db_conn) or die(mysql_error() . "<br />\n" . htmlentities($sql));
                if(mysql_num_rows($result))
					while($mission = mysql_fetch_assoc($result))
						$missions[sizeof($s)]=$mission;
				return $missions;

ja, warum machst Du das dann so? Nochmal: ein Datenbankergebnis zu durchlaufen und in ein Array zu packen, nur um das Array dann wieder zu durchlaufen, ist einfach Käse. Das kostet Speicher und Performance und ist schlichtweg überflüssig. Du musst noch lernen, was man wie sinnvoll in Funktionen auslagert.

Noch der mutmaßliche Grund, warum Du die Meldungen bekommst: ich sehe nicht, wo Du denn in Master.php die Variable $missions füllst. Du musst Dich dringend mal mit den Grundlagen beschäftigen.

LG
 
So jetzt habe ich es bis auf die zwei Selctboxen hingebracht, mit Deiner (kuddeldaddeldu) Hilfe! Danke nochmals:p

Nun zu den Selectboxen:

Diese sollten abhänig sein voneinader! Das heist, wenn das Jahr ausgewält wird, sollten nur die Monate angezeigt werden, die auch ein Spieldatum beinhalten! habe viel gelesen, aber nirgends wie ich dies mit PHP realisieren kann.


PHP:
  <?php 

	echo '<form name="Form_SelectYearMonth" action="index.php?test" method="get">
	<select name="year" style=width:5em; onChange="form.submit();">';
	foreach (GetAllYearsFrom($config) as $year)
	{
		if(isset($_GET['year'])&&($_GET['year']==$year['year']))
			echo '<option value="'.$year['year'].'">'.$year['year'].'</option>';
		else
			echo '<option value="'.$year['year'].'">'.$year['year'].'</option>';
	}
	echo '</select>
	
	<select name="month" style=width:7em; onChange="form.submit();">';
	foreach (GetAllMonthFrom($config) as $month)
	{
		if(isset($_GET['year'])&&($_GET['year']==$month['month']))
			echo '<option selected="selected" value="'.$month['month'].'">'.$month['month'].'</option>';
		else
			echo '<option value="'.$month['month'].'">'.$month['month'].'</option>';
	}
	echo '</select>

		</form>';		
?>
Im weiteren sollte darunter in einer Tabelle der Monat und das Jahr angezeigt werden.
Wie kann ich von der zweiten SelechtBox die Variable in die Tabelle übergeben?

Danke Grazioli
 
Nun zu den Selectboxen:

Diese sollten abhänig sein voneinader! Das heist, wenn das Jahr ausgewält wird, sollten nur die Monate angezeigt werden, die auch ein Spieldatum beinhalten! habe viel gelesen, aber nirgends wie ich dies mit PHP realisieren kann.

Das ist ein Standardproblem, dass nun wirklich schon x-mal durchgekaut wurde. Allein auf tutorials.de sollte da genügend zu finden sein.

LG
 
Zurück