Hallo zusammen!
Ich sitze wieder mal vor einen Problem das mich schon ein paar Tage ärgert.
Folgende Ausgangsituation:
Ich möchte verschiedene Lieferscheinnummern in der DB suchen, ich weiß die einmalige Scheinnummer und den Leistungszeitraum. Auf Grund der Eingetragenen Menge musste ich die DB in mehreren Tabellen aufteilen.
Folgenden Code hab ich bereits:
$q = Schein Nummer
$lzr = Leistungszeitraum im Format mm.yyyy
Ich hätte gerne das dass Array so aussehen sollte
Array([btbnr] => 123456, [erg] => 1, [daten] => Array([0] => start|ende|pause usw. [1] => start|ende|pause usw.));
Soweit hab ich das auch nur wenn nichts gefunden wird sollte das auch im Array stehen
mit [erg] => 0 (Dieser Code fehlt zurzeit).
Problem ist nur wenn in der ersten Tab nichts gefunden wird steht [0] in der zweiten Tab wird was gefunden steht alles korrekt im Array in der dritten Tab wird wieder nichts gefunden steht wieder [0] im Array.
In der weiteren Verarbeitung wird das Array durchlaufen und die Stunden zwischen Start und Ende berechnet und danach in einer html Tabelle ausgegeben.
Pro Berichtnummer aber nur 1 Zeile. Sprich alle gefundenen Einträge werden vor der Ausgabe addiert.
Hat jemand einen Idee wie ich das umsetzten könnte? Bzw. bin ich mit meiner Funktion am Holzweg?
Gruss
DjJLX
Ich sitze wieder mal vor einen Problem das mich schon ein paar Tage ärgert.
Folgende Ausgangsituation:
Ich möchte verschiedene Lieferscheinnummern in der DB suchen, ich weiß die einmalige Scheinnummer und den Leistungszeitraum. Auf Grund der Eingetragenen Menge musste ich die DB in mehreren Tabellen aufteilen.
Folgenden Code hab ich bereits:
$q = Schein Nummer
$lzr = Leistungszeitraum im Format mm.yyyy
Ich hätte gerne das dass Array so aussehen sollte
Array([btbnr] => 123456, [erg] => 1, [daten] => Array([0] => start|ende|pause usw. [1] => start|ende|pause usw.));
Soweit hab ich das auch nur wenn nichts gefunden wird sollte das auch im Array stehen
mit [erg] => 0 (Dieser Code fehlt zurzeit).
Problem ist nur wenn in der ersten Tab nichts gefunden wird steht [0] in der zweiten Tab wird was gefunden steht alles korrekt im Array in der dritten Tab wird wieder nichts gefunden steht wieder [0] im Array.
In der weiteren Verarbeitung wird das Array durchlaufen und die Stunden zwischen Start und Ende berechnet und danach in einer html Tabelle ausgegeben.
Pro Berichtnummer aber nur 1 Zeile. Sprich alle gefundenen Einträge werden vor der Ausgabe addiert.
Hat jemand einen Idee wie ich das umsetzten könnte? Bzw. bin ich mit meiner Funktion am Holzweg?
Gruss
DjJLX
PHP:
function search_plan($was,$q,$lzr)
{
global $dbprefix;
$cell = 'btb_nr';
$select = '`btb_start`, `btb_ende`, `btb_pause`, `btb_funk`, `btb_typh`, `btb_warn`, `btb_nr`,`bfunk`, `gsmr`, `beruf`, `fid`, `mini`';
if($lzr !== 0)
{
$lzr_fine = explode('.',$lzr);
$lzr_search = mktime(0,0,0,$lzr_fine[0],1,$lzr_fine[1]);
$result = array();
$result['btbnr'] = $q;
for($a=1; $a<=3; $a++)
{
if($a == 1) $lzr = $lzr_search-604800;
if($a == 2) $lzr = $lzr_search;
if($a == 3) $lzr = $lzr_search+3024000;
$lzr_a = date('Y_n',$lzr);
$int = mysql_query("SHOW TABLES LIKE '".$dbprefix."_planung_%%_".$lzr_a."'");
while($db = mysql_fetch_row($int))
{
$int_plan = db_query("SELECT ".$select." FROM `".$db[0]."` WHERE `".$cell."` = '".$q."'");
if(num_rows($int_plan) !== 0)
{
$result['erg'] = 1;
$y=0;
while($row = mysql_fetch_array($int_plan))
{
$result['daten'][$y] = $row['btb_start']."|".$row['btb_ende']."|".$row['btb_pause']."|".$row['btb_funk']."|".$row['btb_typh']."|".$row['btb_warn']."|".$row['btb_nr']."|".$row['bfunk']."|".$row['gsmr']."|".$row['beruf']."|".$row['fid']."|".$row['mini'];
$y++;
}
}
else
{
//Nichts gefunden
}
}
}
}
return $result;
}