[Apache, phpmyadmin, html, PHP, ...] Datenbank mit webbasiertem Zugriff erstellen

  • Ersteller Ersteller boss3D
  • Erstellt am Erstellt am
Das wäre echt super! :daumen:

Blöd ist es halt schon, wenn man zwar genau weiß, was zu tun ist, aber es dann kaum umsetzen kann weil man sich mit dem "Arbeitsmaterial" zu wenig auskennt. Ich versuche zwar schon seit mittlerweile 4 Tagen, mir selbst von "0 weg" php beizubringen, aber übers Internet (mit seinem Halbwissen an jeder Ecke) ist das einfach nur verwirrend und GANZ was anderes, wie wenn man's von einem Lehrer auf einer Uni unterrichtet bekommt. (Glücklicherweise versteht mein Auftraggeber das aber und lässt mir ja gerade deswegen so viel Zeit)
Natürlich erkenne ich die elementaren Dinge wie Schleifen, Variablen, etc. aus meinen C- und Java-Kenntnissen wieder und auch mit $_POST kann ich langsam was anfangen, aber dieses html/php-Gemisch läuchtet mir noch nicht ein. Deswegen habe ich ursprünglich auch versucht, html und php bloß in getrennten Files zu halten. Ich habe aber auch nicht gedacht, dass das so "komplex" werden könnte, dass ich das Formular überhaupt in mehrere Teile aufspalten müssen werde ...
Was isset(), count(), implode(), und was ich halt bis jetzt so an php Funktionen benutzt habe, machen, kapiere ich auch, aber gerade deswegen nervt's mich, dann den "Knacks" in solchen mini-Codeschnipseln nicht anzufinden, wenn was nicht richtig funktioniert.

Aber ich nutze jetzt eh noch die Zeit bis 15:00 und suche selber weiter. Und wenn ich den Fehler finde und mal die richtige Anzahl habe, dann denke ich mich nochmal in die ifs von DarkMo rein ...
 
Der Fehler liegt definitiv im Auslesen der Post werte.

Hierzu bitte mal das Formular wie folgt ändern: name = "taetigkeit[1]" bis name = "taetigkeit[11]"

Dann musst du den Code im php wie folgt anpassen:

$abfrage = "taetigkeit[";
$abfrage .= $b;
$abfrage .= "]"

und dann sollte es hoffentlich funktionieren.

Sollte das nicht gehen muss es wahrscheinlich wie folgt lauten:

for ($a = 1; $a <= 11; $a++) {

if (isset($_POST['taetigkeit][$b])) {
$checkbox_arr[] = $_POST['taetigkeit'][$b];
}

P.S. eigentlich ist das ganze nicht sonderlich kompliziert. Ich stelle mich vermutlich nur grade doof an ;) Wenn man den Code nicht von Grund auf selber schreibt und selber testet dann ist es halt mühsam ;)
 
Zuletzt bearbeitet:
^^ Bei Variante 2 muss entweder die Zählvariable in der Schleife "$b" sein, oder die Indexvariable im if "$a" ... dann geht's endlich. Danke!

Aber was war jetzt das eigentliche Problem? Dass die checkboxen im html File keine Array-Felder mit Index waren?
 
Es muss natürlich $a statt $b sein das hast du richtig erkannt ;)

Das eigentliche Problem war das die Kombination aus "name" und abfrage in php nie zusammen gepasst hat. Im ersten code habe ich versucht id abzufragen (was halt falsch war). Danach bin ich nicht von einem Array sondern von getrennten POST Variablen ausgegangen. Hat dann also wieder nicht gepasst. Damit eine eindeutige Zuordnung möglich ist habe ich als letztes das Array einfach zu einem assoziativen Array gemacht. Normalerweise würde das Array $teatigkeit bei zwei ausgewählten Boxen immer die keys [0] und [1] verwenden. Dabei spielt es dann keine Rolle ob teatigkeit 1 und 2 oder 5 und 7 ausgewählt wurden. Also als Beispiel [teatigkeit] [0]=1 [1]=2 oder eben [teatigkeit] [0]=5 [1]=7.
In der jetzigen Varianten wäre das Array dann aber je nachdem [teatigkeit] [1]=1 [2]=2 oder eben [teatigkeit] [5]=5 [7]=7
 
Okay, dann versuche ich das jetzt mal selber mit den Checkboxen, aber da habe ich eben noch ein "Logikproblem". Wie soll ich z. B. bei 3 gewählten Tätigkeiten innerhalb der selben Schleife zwar 3 Zeilen aber jede mit einer unterschiedlichen Tätigkeitsbezeichnung hinkriegen?

Na ja, das Array mit den bspw. 3 gespeicherten Tätigkeiten untereinander ausgeben und unabhängig davon an jede Zeile checkboxen in der Anzahl der Produkte anhängen ... Aber das wäre halt dann wieder nur eine optische Lösung, die zwar für den Benutzer der Website vernünftig aussieht, aber ICH habe wieder das Problem, dass dabei kein Zusammenhang zwischen der jeweiligen Tätigkeit und den Häkchen bei den Produkten entsteht (am Ende muss ich aber alle Daten zusammenhängend in eine DB kriegen) ... Hm :huh:

[EDIT]
Wenn man den Gedanken fortführt: Dann müsste ich in der Auswertung dann irgendein if-Konstrukt basteln, das sagt "Wenn die Häkchen in Zeile 1 gemacht wurden, dann gehören sie zur Tätigkeit XY, sonst, bla ...". Aber mir kommt das immer noch unnötig umständlich vor?!
 
Zuletzt bearbeitet:
hmm, wieviele checkboxen hastn jetz? ich dachte "eine ansammlung" bisher, das da oben sieht aber irgendwie wie mehrere aus ^^ also generell wirds so gemacht:
SELFHTML: HTML/XHTML / Formulare / Auswahllisten, Radio-Buttons und Checkboxen <- da bei "bitte beachten sie". das habt ihr ja scheinbar auch schon gemacht: name="teatigkeit[]". dann sollte in $_POST['teatigkeit'] eigentlich das besagte array drin sein.

ja, hier stehts auch noch mal sehr schön: PHP: Checkboxen komfortabel auswerten

du müsstest jetzt also prüfen, ob isset($_POST['teatigkeit']) true ist. übrigens: das zu "count"en ergibt wohl wenig sinn :P da kommt dann entweder 0 oder 1 bei raus (weil isset true oder false ergibt). hmm, oder es kommt immer 1 raus, da true/false/0/1 immer ein element ist - gute frage ^^ count ohne isset ergibt auch nicht 11 (oder wieviele checkboxen man so hat), sondern gibt die anzahl der ausgewählten checkboxen an. haste 3 checkboxen gewählt, sind auch genau diese 3 in dem array drin. als wert haben sie den value-parameter ausm html code. also sollte man mit dem vergleichen.

als bsp:
gehen wir davon aus, die checkboxen werden per schleife generiert und die daten stehen im array pff... $chkbx_values[]. dann könnte das ganze so aussehen:
Code:
for($i = 0; $i < $chkbx_count; $i++) {
  echo '<input type="checkbox" name="taetigkeit[]" value="'.$chkbx_values[$i].'"';
  if(isset($_POST['teatigkeit']) && $_POST['teatigkeit'][$i] == $chkbx_values[$i])
    echo ' checked';
  echo '> '.$chkbx_values[$i].'<br>';
}

damit dürften dann nach dem senden-button drücken (sofern man für das bsp natürlich auf die selbe seite leitet) die vorher gewählten checkboxen wieder ausgewählt sein. beim ersten echo bei dem value das sind übrigens ' und " gemischt. sieht vllt nich sehr eindeutig aus. hier sieht man auch gleich, dass php-code und html mischen keine probleme macht. das fand ich immer am reizvollsten irgendwie ^^ mit php eine html seite erstellen und dort html und js reinfummeln und das ganze mit sql-daten befüttern >< so einfach konnt ich noch nie "sprachen mischmasch" betreiben :P
 
So ich nehme mal an das nicht jede Tätigkeit mit jedem Produkt möglich ist. Wenn das falsch ist verbessere mich bitte.
Zunächst legst du dir also eine Tabelle mit Tätigkeiten und eine Tabelle mit Produkten in der Datenbank an. Die Angaben der Checkboxen die du jetzt bisher "fest" in der html stehen hast ordnest du in der Tabelle für Tätigkeiten entsprechend ein. Du hast dabei mindestens folgende Spalten
id/name/produkte/

als Beispiel wären die Einträge dann eben id = 1 / Name = Taetigkeit 1 / Produkte= 1|2|4|6|9

dann trägst du die Produkte in eine Tabelle ein auch hier hast du id/Name

also id = 1 / Name = Produkt 1
id= 2 / Name = Produkt 2

etc.

Die Checkboxen kannst du dann mit einer verschachtelten for Schleife erstellen.

Innerhalb der ersten schleife durchläufst du das Array $checkbox_arr da du ja für jeden Eintrag eine entsprechende Leiste mit Produkten erstellen möchtest.

Also sähe die for Schleife in etwa wie folgt aus.

for($a = 0; $a <= count($checkbox_arr); $a++)
{
Abfrage von spalte Produkte aus der Tabelle taetigkeiten an der Stelle an der Name = $checkbox_arr[$a]
Das Ergebnis der Abfrage ist dann ein String der z.B. so aussieht 1|2|4|5|8|10 den speicherst du als abfrage in $ergebnis.

Den string zerlegst du jetzt in ein Array
$ergebnis_arr = explode('|',$ergebnis);

Dann bindest du eine for Schleife in die bereits bestehende ein.
for($b = 0; $b < count($ergebnis_arr); $b++)
{
Daten aus der Tabelle Produkte abfragen und daraus Checkboxen erstellen.

Hole Name aus Tabelle Produkte an der Stelle wo id=$ergebnis_arr[$b] und speichere in $name
Speichere $ergebnis_arr[$b] in "$id;

$c = $b;
$c++;

echo "<input type="checkbox" name="produkte[$a][$id]" value="$name" id="check".$c""><label for="check".$c"">$name</label><br>";

// Da diese Schleife jetzt für jeden Durchlauf von Schleife $a erneut aufgerufen wird ergibt sich am Ende also ein Mehrdimensionales Array "Produkte" welches "übergeben" werden kann.

}


}
 
Zuletzt bearbeitet:
Bevor ich mich jetzt in eure Erklräungen reindenke, erstmal mein Lösungsansatz:

projektzeiterfassung.php
Code:
<?php
    echo "<br><h1>Projektzeiterfassung</h1>";
    echo "Bitte wählen Sie je Tätigkeit die Produkte, an denen Sie gearbeitet haben:<br><br>";
    
    $checkbox_arr = array();
    for ($a = 1; $a <= 11; $a++) {
        if (isset($_POST['taetigkeit'][$a])) {
            $checkbox_arr[] = $_POST['taetigkeit'][$a];
        } 
    }
    
    $count_arr = count($checkbox_arr); 
    for ($b = 1; $b <= $count_arr; $b++) { 
        echo include('produktcheckboxen.php');
        echo $checkbox_arr[$b-1]."<br>";
    }
?>
produktcheckboxen.php
Code:
<?php
    echo '<input type="checkbox" name="produkt[1]" value="60" id="check1">';
    echo '<input type="checkbox" name="produkt[2]" value="70" id="check2">';
    echo '<input type="checkbox" name="produkt[3]" value="120" id="check3">';
    echo '<input type="checkbox" name="produkt[4]" value="GO" id="check4">';
    echo '<input type="checkbox" name="produkt[5]" value="80" id="check5">';
    echo '<input type="checkbox" name="produkt[6]" value="100" id="check6">';
    echo '<input type="checkbox" name="produkt[7]" value="70G" id="check7">';
    echo '<input type="checkbox" name="produkt[8]" value="80G" id="check8">';
    echo '<input type="checkbox" name="produkt[9]" value="100G" id="check9">';
    echo '<input type="checkbox" name="produkt[10]" value="550" id="check10">';
    echo '<input type="checkbox" name="produkt[11]" value="250" id="check11">';
    echo '<input type="checkbox" name="produkt[12]" value="360" id="check12">';
    echo '<input type="checkbox" name="produkt[13]" value="480" id="check13">';
    echo '<input type="checkbox" name="produkt[14]" value="360" id="check14">';
    echo '<input type="checkbox" name="produkt[15]" value="S60" id="check15">';
    echo '<input type="checkbox" name="produkt[16]" value="S70" id="check16">';
    echo '<input type="checkbox" name="produkt[17]" value="S80" id="check17">';
    echo '<input type="checkbox" name="produkt[18]" value="S100" id="check18">';
    echo '<input type="checkbox" name="produkt[19]" value="LI" id="check19">';
    echo '<input type="checkbox" name="produkt[20]" value="GO!" id="check20">';
?>
liefter:

Unbenannt.PNG

Wo der 1er vor den "Wörtern" herkommt, weiß ich nicht. Und wie ich Wörter und Kästchen vertauschen soll, sodass die Wörter links auf der Seite stehen, muss ich mir auch noch überlegen. Und über jede Kästchenspalte gehört natürlich noch ein Produktname. Die Kästchen sollten sich dann auch entsprechend weiter verschieben, sodass wirklich nur eines unter einem Produktname steht. Aber ich nehme mal an, unter php habe ich nicht den "Luxux", ein CSS File erstellen zu können, das mir das richtet?! Oder kann man eines machen, das sich nur auf html-Teile innerhalb eines php Files auswirkt?

So oder so kommt mir meine Lösung nicht gerade dynamisch vor. Ich denke mich jetzt mal in eure Vorschläge rein ...

PS: Es sind 11 Tätigkeiten und 20 Produkte. Wobei es nicht schlecht wäre, alles so zu machen, dass das vielleicht irgendwann vom Admin einfach erweitert werden kann ohne den halben Code umschreiben zu müssen.

[EDIT]
Damit ihr euch noch besser was vorstellen könnt. So sehen die Excel-Tabellen eines jeden MAs aus:

Unbenannt2.PNG

Meine Aufgabe ist jetzt eben, ein System zu entwickeln, bei dem die MA genau diese Daten (also Tätigkeit, Produkt und Stunden/Wochentag) in ein einfaches Formular eingeben können. Die Daten, die dieses Formular sammelt, sollen dann an eine DB gesendet werden, und der Admin will dann zwei Dinge machen können. Erstens, die Daten aus der DB wieder in ein sinnvolles Excel-Ergebnis exportieren können. Zweitens, die Daten "auswerten" können. Soll heißen, z. B. schauen, wie viele Stunden habe alle MAs zusammen an Produkt XY gearbeitet.

Bis auf den letzten Teil (da bin ich mir nicht sicher) sollte sich das alles mit Apache als Webserver, phpmyadmin für die DBs und der Website als Formular für die MAs umsetzen lassen. Deswegen bin ich ja auf diesen Lösungsansatz mit xampp gekommen ...
 
Zuletzt bearbeitet:
Bevor ich mich jetzt in eure Erklräungen reindenke, erstmal mein Lösungsansatz:

PS: Es sind 11 Tätigkeiten und 20 Produkte. Wobei es nicht schlecht wäre, alles so zu machen, dass das vielleicht irgendwann vom Admin einfach erweitert werden kann ohne den halben Code umschreiben zu müssen.

Deswegen sollst du alles per Schleife aus DB Einträgen erstellen lassen. Dein Code bezüglich der Checkboxen ist Hardcoded, das ist eben nicht dynamisch und anpassungsfähig. Du musst also das script so anlegen das es dir die benötigten Zeilen und Spalten von alleine erstellt. hierzu brauchst du die Zeile im echo '<input type="checkbox" name="produkt[20]" value="GO!" id="check20">'; im Prinzip nur ein einziges mal. Allerdings eingebunden in eine schleife und die Werte wie "Produkt[20]""GO!" "check20" müssen eben mit Variablen ersetzt werden die den entsprechenden in der DB hinterlegte Werte annehmen

P.S. selbstverständlich kannst du auch von PHP erstellten HTML Code per CSS Formatieren.
 
Okay, grundsätzlich ist mir dein Ansatz klar, nur eines verstehe ich noch nicht: Wie genau hängen die beiden DBs (Tätigkeiten, Produkte) zusammen.

Ich habe eine DB "Tätigkeiten" mit einer gleichnamigen Tabelle, die in ihren 2 Spalten 11 Einträge mit id und Namen enthält. Ebenfalls habe ich eine DB "Produkte" mit einer gleichnamigen Tabelle, die in ihren 2 Spalten 20 Einträge mit id und Namen enthält.

Ich nehme mal an, du willst die Tätigkeiten DB mit einer 3spaltigen Tabelle haben, um dort schon die ganzen Ergebnisse unserer "Seite 2" reinspeichern zu können?! Aber wozu soll dann noch die Produkte DB gut sein? Irgendwie verwirrt mich das mit den DBs ...

PS: Alles, das in Richtung Optik und Design geht, halten wir uns als optional offen. Wichtig ist der Firma in erster Linie, dass ich innerhalb der Zeit eine vollfunktionsfähige DB-Lösung bastle. Die optische Gestaltung ist zweitrangig und nicht zwingend erforderlich.
 
der "1er" wird von deinem echo include kommen *vermut* bei erfolg gibt include warscheinlich ne 1 zurück - die du mit echo ausgibst ;) auf deutsch: einen include befehl brauchst du nicht auszugeben, lösche das echo.

gut, dein problem sieht ja nich viel verzwickter aus, als angenommen >< du hast ja nicht nur ein "checkboxen-feld", sondern gleich 11. also quasi ein 2dimensionales array, wenn man so will. dazu ein paar fragen: sind das IMMER 20 auswahlmöglichkeiten pro tätitkeit? dann könnte man es dennoch als simples eindimensionales array machen. und es sind pro tätigkeit auch mehrere auswählbar ja? weil wenn man sich nur für eins entscheiden können soll, wären radio-dingsens wohl besser.

so problem: du rufst 11 mal deine "checkbox-bau-php" auf. und in dieser sagst du immer ganz genau, dass die checkbox den namen produkt[1] zum bsp hat. nun hast du also 11 mal eine checkbox mit dem namen produkt[1] - wie soll er das dann auseinander klamüsern ;P lass einfach die zahl da drin weg, also schreib nur produkt[] und fertig. dann sollten wir schonmal das erste prob weghaben.

css... das versteh ich jetz nich so ganz. natürlich kannst du css verwenden. wieso auch nich? ob du nun schreibst
echo '<font>text</font>';
oder
echo '<font color="red">text</font>';
oder
echo '<font style="color:red">text</font>';
oder
echo '<font class="red-text">text</font>';

wieso sollte er da probleme bekommen? php erstellt html code, wenn du das möchtest. das ist ja irgendwo der grundsinn von php ^^
ach, ich seh grad noch ne frage: erst wörter, dann checkboxen... ääh... ^^
Code:
for ($b = 1; $b <= $count_arr; $b++) {
  [strike]echo[/strike] include('produktcheckboxen.php');
  echo $checkbox_arr[$b-1]."<br>";
}
einfach die zeilen austauschen? ><

für dynamik brauchst du dann wohl deine db. lege da eine tabelle an, in der du deine produkte angibst, und lege eine tabelle an, für deine tätigkeiten. nun ließt du beide aus (select * from...) und lässt für jedes dingen dort eben eine zeile/checkbox generieren. wieso du das mit den checkboxen in ne extra php ausgegliedert hast erschließt sich mir auch noch ned so recht ^^

ich machs mal exemplarisch (codeschnipsel aus meinem letzten projekt als grundlage ^^):
PHP:
    // Verbindung zu MySQL Aufbauen
  $wot = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR $error.="Konnte keine Verbindung zur Datenbank herstellen.<br>Fehlermeldung: ".mysql_error()."\n<br>";
  mysql_select_db(BASIC_VEHICLE_DATA) OR $error.="Konnte Datenbank ".BASIC_VEHICLE_DATA." nicht benutzen.<br>Fehlermeldung: ".mysql_error()."\n\n<br><br>";

  ...

  // get produkte
  $products = array();
  $sql_p = "SELECT * FROM produkte;";
  $res_p = mysql_query($sql_p) OR die("Get Produkte failed.<br>".mysql_error());
  if(mysql_num_rows($res_p))
    while($row_p = mysql_fetch_assoc($res_p)) {
      $products[count($products)] = $row_p;

  // get tätigkeiten
  $sql_t = "SELECT * FROM taetigkeiten;";
  $res_t = mysql_query($sql_t) OR die("Get Taetigkeiten failed.<br>".mysql_error());
  if(mysql_num_rows($res_t))
    while($row_t = mysql_fetch_assoc($res_t)) {
      echo $row_t['Bezeichnung'].': '; // sofern die spalte in der tabelle Bezeichnung heißt
      foreach($products as $product)
        echo '<input type="checkbox" name="produkt[]" value="'.$product['Produkt'].'" id="check1">'; // sofern die spalte in der tabelle eben Produkt heißt
    }
dat müsste so funktionieren. schöner wärs natürlich, wenn du das alles in ne tabelle packst ^^ aber das is ja nur optik. jedenfalls kannst du dann in der db tätigkeiten und produke editieren wie du willst, und er baut dir die seite je nach dem dynamisch zurecht.


edit: du hast für einzelne tabellen eigenständige db's angelegt? oO erstell doch in deiner schon vorhandenen db einfach 2 tabellen xD
edit2: bei der inneren schleife (und dem produkte auslesen am anfang) musst ich noch was ändern, so müsst es passen
 
Zuletzt bearbeitet:
Bitte nochmal das editierte Ende meines vorletzen Postings auf der Vorseite beachten.

Trotzdem nochmal kurz: Es gibt (derzeit) 11 Tätigkeiten und 20 Produkte, allerdings sollte die Anzahl in Zukunft vom Admin leicht geändert werden können (daher dynamische Lsg. zu bevorzugen). Einem Produkt ist IMMER eine Tätigkeit zugewiesen, umgekehrt aber NICHT. Es gibt auch Tätigkeiten, die ein MA z. B. zur Fortbildung macht, hat ergo nichts (direkt) mit Produkten zu tun. In einer (Excel-)Tabelle kann auch die selbe Tätigkeit auf verschiedene Produkte angewandt werden, aber bevor uns da die Köpfe zu rauchen beginnen, kann das natürlich getrennt eingegeben werden --> also in so einem Fall z. B. 3 Zeilen mit 3 unterschiedlichen Produkten, aber jedem Produkt wird Tätigkeit a zugewiesen, die dann eben auch 3 mal in der Tabelle steht (also multi-Zuweisungen machen wir nur von Tätigkeiten zu Produkten, umgekehrt nicht).
Und am Ende sollen ALLE Daten korrekt zusammenhängend in EINER DB landen. Diese soll ja dann wieder zu einem vernünftigen Excel-Ergebnis exportiert werden können (das darf dann m. E. auch aus phpmyadmin heraus gemacht werden müssen).

Der Lösungsansatz von Tessa mit den dynamischen Schleifen gefällt mir schon sehr gut. Ich weiß aber noch nicht, ob ich das umzusetzen schaffe, aber ich fange nach der Pause, die jetzt dann um 12:00 ist, an. Mal schauen, wie weit ich komme ...

[EDIT]
Wegen der einen finalen vollständigen DB muss ich mir wohl auch noch überlegen, ob's schlauer wäre, nach dem Ausfüllen jeder Seite die Daten hinzusenden, oder diese von Seite zu Seite "mitzunehmen" und erst bei der letzten Seite (also dem letzten Formular) dann gesammelt hinzusenden.
 
Zuletzt bearbeitet:
Kannst du evtl. so eine Excel Tabelle anonymisiert zur Verfügung stellen? Dann könnte ich auf der Basis aller vorhandenen Infos am WE mal exemplarisch ein vollständiges Script erstellen. Dann kannst du dir den Kompletten Code inklusive DB mit Tabellen anschauen und ggf. verändern.

Edit: Auch der Excel Export ließe sich über php relativ einfach realisieren.
 
Zuletzt bearbeitet:
die schleifen hab ich dir ja quasi eben schon hingekritzelt. aber, hmm, kurze frage: wieso setzt du das ganze nicht vergleichbar der exel tabelle um? das würde auch den "umstieg" der mitarbeiter vereinfachen, wenn sie dann "dein neues system" nutzen.

ich stell es mir gerade so vor:
du baust die tabelle wie die exel dinges das vorgibt nach.
du hast einen statischen teil: den header. also die überschriften szs
du hast einen dynamischen teil: den inhalt schon gespeicherter datensätze
un du hast nochmal einen statischen teil: die eingabe maske für neue datensätze
naja und untendrunter noch die summen zusammenfassung

den letzten punkt würde ich einfach wieder als letzte tabellenzeile gestalten. tätigkeit und produkt werden als dropdown liste gestaltet, aus der man sich das entsprechende aussuchen kann. wie die jetzt zusammenhängen, war mir auf die schnelle noch zu hoch >< aber fangen wir simpel an: in die dropdowns einfach erstmal alles reinbauen. die beschreibung einfach ein unput feld sowie die ganzen anderen dinger auch - fertig ist die eingabe maske.

wenn du dann noch nen login hinbastelst, kannst du die tabelle nach einträgen nur des einen mitarbeiters filtern. du kannst uU die vorhandenen einträge editierbar machen (sofern das möglich sein soll) und und und.

drückst du den add button, wird vor der tabellen-ausgabe eben der datensatz in die db geschrieben und das wars. bzw eben geändert, gelöscht, what ever. kommts zum erstellen der tabelle, ist die db ja schon wieder im korrekten zustand und du brauchst weiter nix ändern.
 
Kannst du evtl. so eine Excel Tabelle anonymisiert zur Verfügung stellen?
Als Bild siehst du das schon auf der Vorseite, aber du meinst wohl als xlsx File selbst?! Ja, kann ich dir heute Abend noch oder morgen übermitteln.
Auch der Excel Export ließe sich über php relativ einfach realisieren.
Von mir aus gerne, aber ich habe mir das noch nicht angeschaut. Das ist für mich einer der letzten Schritte. Bis jetzt habe ich nur gesehen, dass phpmyadmin praktischerweise alle möglichen Formate (xlsx, pdf, sql, ...) anbietet.
wieso setzt du das ganze nicht vergleichbar der exel tabelle um?
Hätte ich schon probiert gehabt, aber da werde ich alt beim php Script Code schreiben, weil ich ja nicht die ganze Tabelle als ein Objekt auswerten kann, sondern jede einzelne Textbox und jedes einzelne Dropdown gesondert behandelt werden müsste?!
 
wieso willst du die ganze tabelle auswerten? du musst doch nur den neuen datensatz (oder was du änderst) auswerten. das ist doch nur noch eine visualisirung schon vorhandener daten. sitz grad leider ned mehr bei mir am rechner, daher wirds mit codebeispielen nich mehr so genau ^^ aber ich kanns ja mal ausm kopf versuchen:

grundaufbau der seite:
- eventuelle configs/definitionen bla
- verbindungsaufbau zu sql
- formulardaten checken (wurde was gesendet)
- tabelle bauen
-> tabellen kopf
-> dynamisch den tabelleninhalt mit allem schon gespeicherten
-> "add" zeile für neuen datensatz
-> summen-zeile

das dürfts im groben schon gewesen sein. für tabelle bauen hätt ichs halt in etwa so gemacht:
PHP:
echo '<table>';
// tabellen kopf
echo ' <tr>';
echo '   <td>Tätigkeit</td>';
echo '   <td>Produkt</td>';
// ...
echo ' </tr>';

// tabellen rumpf, dynamisch
// datensatz aus db lesen -> ich geh mal von nem $row-arry aus und denk mir passende spaltennamen aus
// im falle eines login basierten systems, solltest du beim speichern der datensätze die mitarbeiter-id mit in der db speicher,
// dann kannste hier alle datensätze rausfiltern, die nur von dem aktuellen mitarbeiter sind
// -> wäre wie gesagt nur eine änderung im sql-string nötig
$overall_time_spend_Mon = 0;
// ...
while($row = mysql_fetch_assoc($res) {
  echo ' <tr>';
  echo '   <td>'.$row['Taetigkeit'].'</td>';
  echo '   <td>'.$row['Produkt'].'</td>';
  // ...
  echo '   <td>'.$row['Time_spend_Mon'].'</td>'; // hier müsste man noch irgendwie ausknobeln, wie man das macht ^^
  $overall_time_spend_Mon += $row['Time_spend_Mon'];
  // ...
  echo '   <td><input type="submit" name="edit"...></td>'; // <- eventuell ein edit-button
  echo ' </tr>';
}

// add zeile
echo ' <tr>';
echo '   <td><input type="text" name="add_taet"...></td>';
echo '   <td><input type="text" name="add_prod"...></td>';
// ...
echo '   <td><input type="submit" name="add"...></td>'; // <- add button
echo ' </tr>';

// Summenzeile
echo ' <tr>';
echo '   <td colspan="3" style="text-align:right">Summe</td>';
echo '   <td>'.$overall_time_spend_Mon.'</td>';
// ...
echo ' </tr>';
echo '</table>';

so in etwa würd ich mir das vorstellen.
 
Also die gezeigte Tabelle reicht mir, da brauche ich keine Orginal Excel Datei. Das einzige was ich noch bräuchte ist halt eine Liste mit Produktnamen und Tätigkeitsnamen.
 
Blöd ist es halt schon, wenn man zwar genau weiß, was zu tun ist, aber es dann kaum umsetzen kann
Ich kann mich irren, aber die Umsetzung ist doch zumeist die eigentliche Schwierigkeit.

Ich versuche zwar schon seit mittlerweile 4 Tagen, mir selbst von "0 weg" php beizubringen
Schade um die vier Tage...

übers Internet (mit seinem Halbwissen an jeder Ecke) ist das einfach nur verwirrend
Dafür bietet sich in der Regel ein gutes Buch an. Wobei, PHP mag da eine Außnahme sein.

wie wenn man's von einem Lehrer auf einer Uni unterrichtet bekommt.
Das meiste in der Richtung wirst du dir letztendlich selbst beibringen müssen. Gewöhne dich daran.




Zunächst legst du dir also eine Tabelle mit Tätigkeiten und eine Tabelle mit Produkten in der Datenbank an. Die Angaben der Checkboxen die du jetzt bisher "fest" in der html stehen hast ordnest du in der Tabelle für Tätigkeiten entsprechend ein. Du hast dabei mindestens folgende Spalten
id/name/produkte/

als Beispiel wären die Einträge dann eben id = 1 / Name = Taetigkeit 1 / Produkte= 1|2|4|6|9

dann trägst du die Produkte in eine Tabelle ein auch hier hast du id/Name

also id = 1 / Name = Produkt 1
id= 2 / Name = Produkt 2

etc.

Ist das Schema für die Tätigkeitentabelle dein Ernst?
 
Zurück