Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Hihi :) mit php eine txt und sql abfrage basteln

Frage Entwicklung PHP

Mitglied: dax4fun

dax4fun (Level 1) - Jetzt verbinden

02.10.2014, aktualisiert 11.10.2014, 1202 Aufrufe, 7 Kommentare

Hi Folks,

ich will mir die Arbeit ein wenig erleichtern (versuche es zumindest)

soo die Frage :

nehmen wir an es gibt 10 Mitarbeiter die verschieden schnell sind beim Akten abarbeiten m1 m2 m3 ... m10 und die geben jeden Tag an wieviele Akten sie abgearbeitet haben.

das schaut dann in der mysqldb so aus für m1

01.
mitarbeiter,datum,spalte3, spalte4  
02.
1,2014-10-01,123,456 
03.
1,2014-10-02,224,557 
04.
1,2014-10-03,333,357
monat für monat

doch zur Zeit der Grippewelle gehen manche in den Krankenstand und lassen die Akten im Luftfall zurück

dann schaut das so aus bei Bsp. m1 alias 1
01.
table: mitarbeiter 
02.
1,2014-10-01,123,456 
03.
1,2014-10-02,224,557 
04.
1,2014-10-04,123,456 
05.
1,2014-10-05,224,557 
06.
1,2014-10-06,333,357
wo ist der Eintrag für 2014-10-03???

ich habe jetzt eine m.txt Datei wo drinen (untereinander) m1 m2 m3 (also die aktiven Mitarbeiter ) stehen und selecte in mitarbeiter wo m1 und datum 2014-10-01, 2014-10-02 03 04 05 06 usw.
will diese Arbeit per php abhacken welches mir die Datumslücken anzeigt
also suche in m.txt m1 raus dann schau in mysql ob m1 von datum 1 bis 31 jeden Tag aktiv ist und dann weiter zu m2, also alle die in der txt vorhanden sind

ich hoffe ich habe es ein bischen spannender gemacht da das auch verständlicher ist

Danke euch

Grüße dax



Mitglied: Arano
03.10.2014 um 17:12 Uhr
hallo dax
habe die re hand gerade in einer gipsschiene, was das tippen nicht einfacher macht

ja, ich würde es genau so machen !
das war doch die frage oder ? denn eine andere konnte ich nicht herauslesen.


~arano
Bitte warten ..
Mitglied: dax4fun
04.10.2014, aktualisiert um 14:54 Uhr
hi, @Arano

was ist denn passiert ???

eigendlich was ich brauche/suche ist ein in php :
suche in m.txt m1 (erster eintrag) raus dann schau in mysql ob m1 von datum 1 bis 31 vorhanden wenn nicht anzeigen und dann weiter zu m2, also alle die in der txt vorhanden sind.

ich hab es für für einen Tag geschaft/gebastelt aber kann es nicht für mehrene Tage anwenden
was ich jetzt habe ist dieses:
01.
$gestern=date("Y-m-d", time()-86400);  
02.
$aktive_mitarbeiter = array(); 
03.
mysql_connect($_db_host, $_db_username, $_db_passwort); 
04.
mysql_select_db($_db_datenbank); 
05.
 
06.
 $sql = "SELECT mitarbeiter FROM mitarbeiter_tbl WHERE mitarbeiter like '$mtxt%' and DATUM LIKE '$gestern%' ORDER BY mitarbeiter"; 
07.
 
08.
$result = mysql_query($sql) or die(mysql_error());; 
09.
 
10.
$file = fopen("m.txt", "r"); 
11.
while(!feof($file)){ 
12.
    $mtxt = fgets($file); 
13.
	$aktive_mitarbeiter[] = trim($shoptxt); 
14.
15.
 
16.
while($row = mysql_fetch_array($result)) { 
17.
 
18.
if (in_array($row[0], $aktive_mitarbeiter)) { 
19.
	//echo "Eintrag Vorhanden " . $row[0] . "<br />"; 
20.
} else { 
21.
	echo "Eintrag nicht Vorhanden " . $row[0] . "<br />"; 
22.
23.
 
24.
25.
 
26.
 
27.
fclose($file); 
28.
 
29.
?>
Das Funkt aber halt nur für gestern wie kann ich es auf einen Monat ausdehnen ???
Bitte warten ..
Mitglied: Arano
06.10.2014 um 12:50 Uhr
Moin moin!

Tja,,, ich habe mir im lager die rechte hand gequetscht.
auch wenn die filmreihe etwas anderes darstellt - den kampf: mensch gegen maschine, verliert der mensch.
stahl ist einfach härter als knochen.
wird aber wieder !


So.
um den ganzen monat zu erhalten brauchst du bloß das datum auf den monat reduzieren.
aus '2014-10-06'
wird '2014-10' und
dann warst du mit deinem query schon auf dem richtigen weg. also das SELECT ... LIKE '2014-10%'.
darüber bekämst du dann alle einträge deren datum mit '2014-10' beginnt und das wären alle des passenden monats.
lediglich das datum musst du auch auslesen, sonst kannst du hinterher nicht mehr erkennen welche tage dabei waren und welche nicht.

natürlich wäre daduch die auswertung aufwendiger geworden. denn nun muss nicht nur geprüft werden ob der mitarbeiter dabei war, sondern auch ob alle tage dabei sind.
die tage die dann fehlen schieben wir samt namen in ein array und "spucken" es am ende einfach auf das display.

du hast schon ein wenig glück das ich die kaputte hand habe, denn ich kann kaum etwas anderes mache so das ich mir die zeit irgendwie vertreiben muss ...laaangweilig... und dabei kommt dann sowas herraus.
allerdings habe ich das nur getippt, mit einer hand und mit links !


~Arano


01.
<?php 
02.
 
03.
 
04.
$strDateYM = date("Y-m"); //   =   '2014-10' 
05.
 
06.
 
07.
/* DATEN ERMITTELN *
08.
/* mysql *
09.
 
10.
$strQuerySelectAllThisMonth = "SELECT `mitarbeitername`,`datumdeseintrags` 
11.
                                 FROM `mitarbeiter_tbl` 
12.
                                WHERE `datumdeseintrags` LIKE '".$strDateYM."%' 
13.
                             ORDER BY `mitarbeitername` ASC, 
14.
                                      `datumdeseintrags` ASC"; 
15.
$myretAllThisMonth = mysql_query( $strQuerySelectAllThisMonth ); 
16.
// ...vernünftige fehlerbehandlung... 
17.
 
18.
 
19.
/* file / mitarbeiterliste *
20.
 
21.
$arrMAs = file('m.txt'); //   =  array('ma1','ma2','ma3', ...) 
22.
// ...vernünftige fehlerbehandlung... 
23.
 
24.
 
25.
 
26.
 
27.
/* DATEN AUFBEREITEN *
28.
 
29.
// data array initzialisieren 
30.
$arrData = array(); 
31.
foreach( $arrMAs as $strMa
32.
    $arrData[$strMa] = array(); 
33.
    // z.B $arrData = array
34.
    //                       'ma1' => array(), 
35.
    //                       'ma2' => array() 
36.
    //                      ); 
37.
 
38.
// db daten in data array 
39.
while( $arrDbData=mysql_fetch_assoc($myretAllThisMonth) ) 
40.
    $arrData[$arrDbData['mitarbeitername']][] = $arrDbData['datumdeseintrags']; 
41.
    // z.B $arrData = array
42.
    //                       'ma1' => array(0=>'2014-10-01',1=>'2014-10-02',2=>'2014-10-03',3=>'2014-10-05', 4=>... ),   // beachte das der 04. fehlt ! 
43.
    //                       'ma2' => array(0=>'2014-10-01',1=>'2014-10-02',2=>'2014-10-03',3=>'2014-10-04', 4=>... )    // hier ist alles okay 
44.
    //                      ); 
45.
 
46.
// leeres fehlen array 
47.
$arrNotExist = array(); // leeres array bedeutet das keine "fehler" gefundwen wurden bzw. die db ist vollständig. 
48.
 
49.
 
50.
 
51.
 
52.
/* DATEN AUSWERTEN *
53.
 
54.
// prüfe für jeden MA... 
55.
foreach( $arrMAs as $strMa
56.
57.
    // ...jedes datum   ACHTUNG ACHTUNG: wochenende, urlaub, krank, feiertage, sozialtage, "andereaufgaben", monatsende30/31, februar/28, schaltjahre, ...... 
58.
    // ...jedes datum   ACHTUNG ACHTUNG: wochenende, urlaub, krank, feiertage, sozialtage, "andereaufgaben", monatsende30/31, februar/28, schaltjahre, ...... 
59.
    for( $intDay=1; $intDay<=31; $intDay++ ) 
60.
61.
        // einstellig zu zweistellig (1=>01  /  int zu str) 
62.
        $strDay = $intDay<10 ? '0'.$intDay : $intDay
63.
        if( !in_array($strDateYM.'-'.$strDay,$arrData[$strMa]) ) 
64.
65.
            // dieses datum fehlt in der liste des mitarbeiters 
66.
            $arrNotExist[] = $strMa.' - '.$strDateYM.'-'.$strDay
67.
68.
69.
70.
 
71.
 
72.
 
73.
 
74.
/* DATEN AUSGEBEN *
75.
 
76.
if( !empty($arrNotExist) ) 
77.
78.
    echo 'F&uuml; die folgenden Einträge wurden keine Daten in der Datenbank gefunden !'
79.
    foreach( $arrNotExist as $strMaAm
80.
        echo $strMaAm.'<br>';   //   =   "name - datum<br>" 
81.
82.
else 
83.
84.
    echo 'Alles ist sauber.'
85.
86.
 
87.
 
88.
?>
Bitte warten ..
Mitglied: dax4fun
11.10.2014, aktualisiert um 15:54 Uhr
hi , @Arano

Danke für deine Super Arbeit und deine echt ordentlich vorbildliche Art

sag erst mal wie gehts deiner Hand??? Den Terminator Satz fand ich Super

zu dem php irgendwo schleicht sich ein Leerzeichen rein beim Array ausgabe mit var dump
01.
 "556009 " [1]=> string(7) "556011 " [2]=> string(7) "556014 " [3]=>
ist das Leerzeichen der Grund ? oder kann es sein, weil die Mitarbeiter eigentlich '555123','555456','555146' heißen und nicht ma1 ma2 st??

wie ich das php von mir gebastelt hab funktionierte die Auswertung erst nach dem einbauen
01.
$aktive_mitarbeiter[] = trim($shoptxt);
Mit freundlichen Grüßen
dax
ps: hatte einen Fehlalarm, meine Frau hat in 2 Tagen Geburtstermin, mit Schlafen ist da nichts
Bitte warten ..
Mitglied: Arano
LÖSUNG 11.10.2014, aktualisiert um 17:08 Uhr
Hallo,

Danke! Danke!
Joar, ansich geht es meiner Hand ganz gut, die Ärztin ist mit dem Heilungsprozess mehr als zufrieden. Wie du siehst kann ich auch schon wieder Tippen bzw. ich bin die Gipsschine für die ganze Hand los. Habe jetzt nur noch eine am Finger Wiki-Stacksche-Schine (allerdings nicht wegen der Sehne sondern wegen der Nagelkranzfrakturen (und was anderem))
Den Terminator Satz fand ich Super face-smile
"I'll be BACK !" wird dann mein erster Satz wenn ich wieder auf der Arbeit bin *gg*

Ich fang mal "hinten" an.
Das die Mitarbeiter unterm Strich "nur anders heißen" sollte keine Rolle spielen.
Ich nehme mal an das du mit var_dump() die Variabel $arrMAs ausgegeben hast !?
Nein, das Leerzeichen hat keine Funktion bzw. es sollte gar nicht da sein !

Ich weiss aber auch schon wo es her kommt !
Wenn die MA-Datei mit der Funktion file() eingelesen wird, landet auch der Zeilenumbruch in dem Array-Element (\n | \r\n | \r Linux | Windows | Mac).
Aber das können wir mit dem entsprechendem Flag unterbinden.
01.
$arrMAs = file( 'm.txt',  FILE_IGNORE_NEW_LINES  ); //   =  array('ma1','ma2','ma3', ...) 
Das entspricht dann quasi dem trim() das du verwendet hattest.


Hey, dann wird das bei euch in den nächsten Tagen ja richtig schön, freue mich für Euch !


Wünsche euch ein schönes Wochenende
~Arano
Bitte warten ..
Mitglied: dax4fun
11.10.2014 um 17:16 Uhr
jep und jep und jep

es war das Leerzeichen

Danke *juhuuu* und eine gute Genesung
Bitte warten ..
Mitglied: Arano
11.10.2014 um 17:23 Uhr

Das freut mich puhh... keine weiteren versteckten Fehler

Danke!
Möge euer "Wurm" gesund und munter sein, alles Gute !


~Arano
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
PHP
gelöst PHP Dropdownmenü mit SQL-Abfrage (4)

Frage von tobmes zum Thema PHP ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...