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

  • Ersteller Ersteller boss3D
  • Erstellt am Erstellt am
@ Rho
Ach, was ... alles halb so wild. Hab gerade DarkMo's Schleifen ein bisschen "kreativ umgestaltet" und schon hab ich mein dynamisches dropdown. :)
Code:
<?php
    $verbindung = mysql_connect("localhost", "root" , "root") or die ("Verbindung zur Datenbank konnte nicht hergestellt werden");    
    mysql_select_db("projektzeiterfassung") or die ("Datenbank konnte nicht ausgewählt werden.");
    
    $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;
        }
    
    echo '<select name="product">';
    foreach ($products as $product) {
        echo '<option value="'.$product['produkt'].'">'.$product['produkt'].'</option>';        
    }
    echo '</select>';
?>
Jetzt brauche ich halt noch das gleiche für Tätigkeiten und dann muss ich mir eben überlegen, wie ich's schaffe, dass die neue Zeile mit den dropdowns im html Dokument unterhalb des Headers eingefügt wird, anstatt auf einer neuen Seite ...

BTW: Für ~3 Wochen Arbeit ein ~50 € Buch besorgen kommt mir ein bisschen "overkill" vor. Das kann ich dann machen, wenn ich mal ein weitaus umfangreicheres Projekt zu diesem Thema machen muss (was aber in naher Zukunft nicht der Fall sein wird).

@ Tessa
Wie gesagt: Sobald überhaupt erst mal alles steht und läuft, kümmere ich mich dann gerne um die Feinheiten.

[EDIT]
Na bitte ...
Code:
<?php
    $verbindung = mysql_connect("localhost", "root" , "root") or die ("Verbindung zur Datenbank konnte nicht hergestellt werden");    
    mysql_select_db("projektzeiterfassung") or die ("Datenbank konnte nicht ausgewählt werden.");
    
    $taetigkeiten = array();
    $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)) {
            $taetigkeiten[count($taetigkeiten)] = $row_t;
        }
    
    $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;
        }
        
    echo '<select name="taetigkeit">';
    foreach ($taetigkeiten as $taetigkeit) {
        echo '<option value="'.$taetigkeit['taetigkeit'].'">'.$taetigkeit['taetigkeit'].'</option>';
    }
    echo '</select>';
    
    echo '<select name="product">';
    foreach ($products as $product) {
        echo '<option value="'.$product['produkt'].'">'.$product['produkt'].'</option>';
    }
    echo '</select>';  
    
    echo '<input name="beschreibung" type="text" size="50" maxlength="250">';
    
    echo '<input name="montag" type="text" size="10" maxlength="5">';
    echo '<input name="dienstag" type="text" size="10" maxlength="5">';
    echo '<input name="mittwoch" type="text" size="10" maxlength="5">';
    echo '<input name="donnerstag" type="text" size="10" maxlength="5">';
    echo '<input name="freitag" type="text" size="10" maxlength="5">';
    echo '<input name="samstag" type="text" size="10" maxlength="5">';
    echo '<input name="sonntag" type="text" size="10" maxlength="5"><br><br>';
?>
Unbenannt.PNG
 
Zuletzt bearbeitet:
So, und hier ist das Teil auch schon:

Unbenannt.PNG

Bin ich doch noch zu der "Ehre" gekommen, mich mit Javascript zu befassen. :fresse:
Code:
<!doctype html>
<html>
<head>
<meta charset="ISO-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Projektzeiterfassung</title>
[COLOR=royalblue]<script type="text/javascript">
    var request = false;

    function setRequest() {
        request = new XMLHttpRequest();
        
        if (!request) {
            alert("Kann keine XMLHTTP-Instanz erzeugen");
            return false;
        } else {
            var url = "dynamictable.php";
            request.open('post', url, true);
            request.send(null);
            request.onreadystatechange = interpretRequest;
        }
    }
    
    function interpretRequest() {
        var content = request.responseText;
        document.getElementById('content').innerHTML = content;
    }
</script></head> 
<body>
<form action="formular.php" method="post">
    <br><h1>Projektzeiterfassung</h1>
    <table>
        <tr>
            <th>Tätigkeit</th>
            <th>Produkt</th>
            <th>Beschreibung</th>
            <th>MO</th>
            <th>DI</th>
            <th>MI</th>
            <th>DO</th>
            <th>FR</th>
            <th>SA</th>
            <th>SO</th>
    </table><br>    
    [COLOR=royalblue]<div id="content"></div>
    <div class="submit"><a href="javascript:setRequest()">Neue Eingabezeile hinzufügen</a></div><br>    <div class="submit"><input type="submit" name="confirm" value="Bestätigen"></div>
</form>
</body>
</html>
Jetzt muss ich nur noch irgendwie rausfinden, wie ich das href in einen html-Button einbauen kann (sodass das auch funktioniert. Bisschen rumprobiert hätte ich ja schon). Einen Link will ich nicht haben ...

Ach ja, und wie ich die Breite der dropdowns und texareas "dynamisch" angeben kann. Sodass die gleich breit wie die zugehörigen Tabellen Header werden. Aber mit CSS komme ich ja nicht zum dynamictable.php Script?!

[EDIT]
Ah, ok. Mehr ist's nicht ... :D
Code:
<div class="submit"><input type="button" [COLOR=royalblue]onClick="javascript:setRequest()" value="Neue Eingabezeile hinzufügen"></div><br>
Unbenannt.PNG
 
Zuletzt bearbeitet:
Du Kannst alles mir CSS Formatieren unabhängig davon wo der Code steht. Ich persönlich erstelle einfach eine style.css und binde diese per include am Anfang des Scriptes. Dann hast du in jedem Dokument Zugriff auf deine zentral definierten CSS Formate. Warum packst du die "neue" Zeile nicht in die selbe Tabelle wie den Header? dann passt sich diese direkt an den Header an.

Als letzte Zeile verwendest du einfach die Dropdowns und Eingabefelder (jeweils in einer eigenen Zelle der Tabelle) und Schon ist alles gleichmäßig groß.

<!doctype html>
<html>
<head>
<meta charset="ISO-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Projektzeiterfassung</title>
<script type="text/javascript">
var request = false;

function setRequest() {
request = new XMLHttpRequest();

if (!request) {
alert("Kann keine XMLHTTP-Instanz erzeugen");
return false;
} else {
var url = "dynamictable.php";
request.open('post', url, true);
request.send(null);
request.onreadystatechange = interpretRequest;
}
}

function interpretRequest() {
var content = request.responseText;
document.getElementById('content').innerHTML = content;
}
</script>
</head>
<body>
<form action="formular.php" method="post">
<br><h1>Projektzeiterfassung</h1>
<table>
<tr>
<td>Tätigkeit</td>
<td>Produkt</td>
<td>Beschreibung</th>
<td>MO</td>
<td>DI</td>
<td>MI</td>
<td>DO</td>
<td>FR</td>
<td>SA</td>
<td>SO</td>

</tr>



hier gibst du jetzt einfach den Inhalt der Datenbank per PHP aus. (Dabei erzeugst du keine neue Tabelle sondern lediglich die richtigen zeilen und "spalten" also <tr><td>Inhalt</td><td>Inhalt</td></tr><tr><td>Inhalt2</td><td>Inhalt2</td></tr> usw.) Als kleiner Tipp wenn du das Anzeigen einer Zelle erzwingen willst bietet sich   an. Das ist ein erzwungenes Leerzeichen ;)



</table><br>
<div id="content"></div>
<div class="submit"><a href="javascript:setRequest()">Neue Eingabezeile hinzufügen</a></div><br>
<div class="submit"><input type="submit" name="confirm" value="Bestätigen"></div>
</form>
</body>
</html>
 
Zuletzt bearbeitet:
Warum packst du die "neue" Zeile nicht in die selbe Tabelle wie den Header? dann passt sich diese direkt an den Header an.
An das hätte ich schon gedacht, aber da kommt nichts vernünftiges dabei raus, weil er dann die eine Zeile als Ganzes unter das erste Header-Feld stellt:

Unbenannt.PNG

^^ Drum hätte ich jetzt probiert, das ganze unabhängig vom Header zu formatieren, aber style="whatever" direkt im html Dokument zeigt keine Wirkung und über CSS könnte ich nur auf <div id="content"></div> zugreifen, wenn ich dem Teil auch noch class="scr" hinzufüge. Aber auch dabei kommen nur verpfuschte Versionen dessen raus, was ich habe möchte ...

[EDIT]
Kann sein, dass wir bei deinem EDIT eh ans selbe denken, aber ich hätte vorgehabt, den User erstmal nur Zeile für Zeile, so viel er eben braucht, seine Daten eingeben zu lassen. Dann soll er auf "Bestätigen" klicken. Der Button führt ihn dann zu einer zweiten Seite, wo ihm eine Tabelle mit seinen ausgewählten/eingegeben Daten angezeigt wird. Hier kann er wiederum bestätigen --> Daten werden in DB geschrieben, ODER er kann auf einen "Edit" Button klicken und kommt wieder zurück zu Tabelleneingabe, wo hoffentlich noch seine Daten angezeigt werden sodass er diese editieren kann.

Ich denke, du meinst genau das, nur eben das User-Ergebnis auch gleich auf der Daten-Eingabeseite ausgeben?!

Bevor ich das angehe, würde ich aber noch gerne zwei kleine Problemchen beheben:
1) Eben die optische Anpassung dieser dynamischen Zeile an den statischen Header
2) Bei Klick auf den neue-Zeile-Button soll jedes weitere Mal eine weitere neue Zeile kommen. ATM tut sich bei leerer Zeile nichts und bei ausgefüllter wird einfach nur der Inhalt gelöscht. Was soll ich da machen? Ich denke so in Richtung Endlosschleife mit if/break, auch wenn ich noch nicht konkret weiß, wie und was ...
 
Zuletzt bearbeitet:
Ja weil du es falsch machst. Du musst jedes Feld der "Zeile" in eine eigene Tabellenspalte schreiben ;) also jedes Input Feld in ein <td>Inhalt</td> setzen ;) oder die gesamte Zeile mit colspan="10" als Attribut versehen.
 
Und genau das geht eben nicht, weil ich nur dieses eine Teil habe:
Code:
<tr><td><div id="content"></div></td></tr>
^^ Das hier fügt die gesamte Zeile ins html-Dokument ein.

Am ehesten würd's helfen, irgendwie "stretch Zeile to Bildschirmbreite" sagen zu können (es soll ja schön dynamisch werden, wie auch der Header in dieser Hinsicht). Aber außer "center" greift in CSS nichts von dem, was ich bisher probiert habe.
 
Zuletzt bearbeitet:
Also jetzt mal für Dumme warum geht das nicht?

Du ersetzt also <div id="content"> durch die ganzen Inputfelder richtig?

<?php
$verbindung = mysql_connect("localhost", "root" , "root") or die ("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("projektzeiterfassung") or die ("Datenbank konnte nicht ausgewählt werden.");

$taetigkeiten = array();
$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)) {
$taetigkeiten[count($taetigkeiten)] = $row_t;
}

$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;
}


echo '<form action="formular.php" method="post">';
echo '<br><h1>Projektzeiterfassung</h1>';
echo '<table>';
echo '<tr>';
echo '<td>Tätigkeit</td>';
echo '<td>Produkt</td>';
echo '<td>Beschreibung</td>';
echo '<td>MO</td>';
echo '<td>DI</td>';
echo '<td>MI</td>';
echo '<td>DO</td>';
echo '<td>FR</td>';
echo '<td>SA</td>';
echo '<td>SO</td>';
echo '</tr>';

echo '<tr><td><select name="taetigkeit">';
foreach ($taetigkeiten as $taetigkeit) {
echo '<option value="'.$taetigkeit['taetigkeit'].'">'.$taetigkeit['taetigkeit'].'</option>';
}
echo '</select></td>';

echo '<td><select name="product">';
foreach ($products as $product) {
echo '<option value="'.$product['produkt'].'">'.$product['produkt'].'</option>';
}
echo '</select></td>';

echo '<td><input name="beschreibung" type="text" size="50" maxlength="250"></td>';

echo '<td><input name="montag" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="dienstag" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="mittwoch" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="donnerstag" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="freitag" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="samstag" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="sonntag" type="text" size="10" maxlength="5"></td></tr></table><br><br>';
?>

Einfach so ersetzen bitte.

Dazu zusätzlich folgenden Code nutzen:


<div id="content"></div>

<br>
<div class="submit"><a href="javascript:setRequest()">Neue Eingabezeile hinzufügen</a></div><br>
<div class="submit"><input type="submit" name="confirm" value="Bestätigen"></div>
</form>
 
Zuletzt bearbeitet:
^^ Mit exakt diesem/deinem Code kriege ich das hier raus:

Unbenannt.PNG

Da sind ja meine Versuche noch näher dran ...
 
Das wird eher schlimmer als besser ...

Unbenannt.PNG

Vergessen wird das erstmal und kümmern wir uns bitte darum:
Bei Klick auf den neue-Zeile-Button soll jedes weitere Mal eine weitere neue Zeile kommen. ATM tut sich bei leerer Zeile nichts und bei ausgefüllter wird einfach nur der Inhalt gelöscht. Was soll ich da machen? Ich denke so in Richtung Endlosschleife mit if/break, auch wenn ich noch nicht konkret weiß, wie und was ...

Die Optik kann ich am Ende des Projekts immer noch richten.
 
und nochmal Edit des Codes oben jetzt aber hoffe ich ;)

bezüglich des neuen Problems sehe ich nirgendwo eine Funktion die die Daten in die Datenbank schreibt. Außerdem sehe ich keine Funktion die entsprechenden Daten aus der Datenbank zu einer Zeile auszugeben. Folglich kann da m.E. nichts passieren.
 
Zuletzt bearbeitet:
Jein ...

Header und Zeile hängen zusammen und erscheinen beide erst beim Klicken auf den Link, der eigentlich ein Button sein sollte. Ansonsten würd's optisch okay ausschauen, aber wenn die Zeile jetzt am Header hängt, wie willst du dann weitere Zeilen OHNE Header anfügen?

Wie gesagt: Lassen wir das lieber vorerst und kümmern uns bei meinem ursprünglichen Code um das Einfügen weiterer Zeilen.
 
PHP ist Dynamisch. Du bindest die Ausgabe der Datenbank Daten einfach im Script zwischen Header und Abschlusszeile ein. Damit erscheint jede neue Zeile entsprechend zwischen dem Header und der Abschlusszeile, da sehe ich kein Problem da du einfach eine Zeile zwischen den bereits vorhandenen Einfügst.
 
@ DarkMo
Nur am Rande erwähnt: Die derzeit vorhanden Daten (also Excel-Dokumente) müssen nicht auch noch in die DB wandern. Die Lösung hier wird für zukünftige Daten (die aber nach dem selben Schema aufgebaut sein werden) entwickelt. Zeile 1 und 2 unterhalb des Headers in deinem Beispiel bräuchte es daher nicht. Zeile 3 sollte eigentlich gleich nach dem Header kommen, bzw. dann, wenn man auf meinen "neue Zeile einfügen" Button klickt.
ich glaube, du missverstehst mich hier ganz gewaltig und tessa und ich versuchen dir seit ein paar seiten im grunde das selbe zu erzählen ^^

diese besagten 2 zeilen sind KEINE alten daten. aber ich mein - wie kann man das nich verstehn sry ^^ bin grad etwas am ende mit meinem latein. das gezeigte bsp ist quasi der stand einer "frischen installation" mit leerer db PLUS schon 2 gemachten einträgen. ich mein, irgendwann füllt sich nunmal die db, und das muss angezeigt werden. das sollte also quasi nur beispielhaft eine ansicht sein, die man nach 2 gemachten einträgen sieht. besser kann ichs nicht erklären :/

also du beginnst mit einer leeren tabelle, die sich mit jedem gemachten eintrag füllt. und hier wurden halt schon 2 einträge gemacht.


und nochmal wegen dem folgenden:
wozu willst du irgendwelche anderen php dateien erstellen? wenn du das in ne funktion auslagerst - mag ja sein. aber alles andere ist doch unnötig. du brauchst an und für sich NUR diese eine datei (bei dir wohl formular.php genannt). im jetzigen stadium ist das völlig ausreichend.

gut, nächster punkt: wieso funtzen die buttons nicht. bzw wieso kann ich die nicht unterscheiden... die haben keine namen. die id nutzt nix, die brauchen einen namen (name="edit" -> if(isset($_POST['edit'])) echo 'editieren'; ).

wegen der tabelle: mir scheints so, als würdest du laufend neue tabellen erstellen, statt die eine (mit dem festen tabellenkopf) einfach weiter zu nutzen. das geht doch ganz easy:
Code:
<table>
  // tabellenkopf
  <tr>
    <td>Tätigkeit</td><td> // ... usw usf
  </tr>
  // der dynamische teil, mit der ausgabe der schon eingetragenen daten
  <tr>
    // sql anfrage (einträge)...
    while($row...) <td>$row[Teatigkeit]</td><td> // ... usw usf
  </tr>
  // die zeile zum adden EINES neuen datensatzes
  <tr>
    <td><select...>
    // sql-anfrage (tätigkeiten)...
    while($row...) <option value="$row[ID]">$row[Name]</option>
    </select></td>
    <td> // ... usw usf
  </tr>
</table>
mehr ist das doch garnicht.
 
So stelle ich mir das in etwa vor. Der Code ist mit dem Editor erstellt und die Datenbank Struktur war mir nichtganz klar, das müsstest du also überprüfen. Aber das Ablaufschema sollte im Prinzip funktionieren ;)

PHP:
<?php

$verbindung = mysql_connect("localhost", "root" , "root") or die ("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("projektzeiterfassung") or die ("Datenbank konnte nicht ausgewählt werden.");

$taetigkeiten = array();
$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)) {
$taetigkeiten[count($taetigkeiten)] = $row_t;
}

$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;
}

if(isset($_POST['submit'])){$submit = $_POST['submit'];}else{$submit = 0;}

switch ($submit) {
    case 0:
        // Normale Ausgabe

echo '<form action="formular.php" method="post">';
echo '<br><h1>Projektzeiterfassung</h1>';
echo '<table>';
echo '<tr>';
echo '<td>Tätigkeit</td>';
echo '<td>Produkt</td>';
echo '<td>Beschreibung</td>';
echo '<td>MO</td>';
echo '<td>DI</td>';
echo '<td>MI</td>';
echo '<td>DO</td>';
echo '<td>FR</td>';
echo '<td>SA</td>';
echo '<td>SO</td>';
echo '</tr>';

	// Abfrage der Datenbank + Erstellen der Tabellenzeilen
	
	$sql = "zeiten";
	$nr = 1;

	$abfrage = "SELECT * FROM `$sql`";
	$ergebnis = mysql_query($abfrage);
	while($row = mysql_fetch_object($ergebnis))
   	{
   	if($ergebnis->teatigkeit != "" AND $ergebnis->teatigkeit != 0)
	{
	echo "<tr><td>".$ergebnis->taetigkeit."</td><td>".$ergebnis->produkt."</td><td>".$ergebnis->beschreibung."</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>";
	}
	else
	{
	

echo "<tr><td><select name='taetigkeit_".$nr."'>";

foreach ($taetigkeiten as $taetigkeit) {
echo '<option value="'.$taetigkeit_".$nr."['taetigkeit'].'">'.$taetigkeit_".$nr."['taetigkeit'].'</option>';
}
echo '</select></td>';

echo '<td><select name="product_".$nr."">';
foreach ($products as $product) {
echo '<option value="'.$product_".$nr."['produkt'].'">'.$product['produkt'].'</option>';
}
echo '</select></td>'; 

echo '<td><input name="beschreibung_".$nr." type="text" size="50" maxlength="250"></td>';
echo '<td><input name="montag_".$nr."" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="dienstag_".$nr." type="text" size="10" maxlength="5"></td>';
echo '<td><input name="mittwoch_".$nr." type="text" size="10" maxlength="5"></td>';
echo '<td><input name="donnerstag_".$nr." type="text" size="10" maxlength="5"></td>';
echo '<td><input name="freitag_".$nr." type="text" size="10" maxlength="5"></td>';
echo '<td><input name="samstag_".$nr." type="text" size="10" maxlength="5"></td>';
echo '<td><input name="sonntag_".$nr." type="text" size="10" maxlength="5"></td></tr>


$nr++;
	}


   	}


	// Ende Abfrage der Datenbank + Erstellen der Tabellenzeilen



</table><br><br>';

<br>

<div class="submit"><input type="hidden" name="submit" value="2"><input type="submit" name="confirm" value="Bestätigen"></div>
</form>
<form>
<div class="submit"><input name="insert_count" type="text" size="2" maxlength="2"><input type="hidden" name="submit" value="1"><input type="submit" name="add_new" value="Neue Zeilen Hinzufügen"></div>
</form> 


	// Ende Normale Ausgabe
        break;
    case 1:
	// Neue Zeilen hinzufügen        

$sql = "zeiten";
$insert_count = $_POST['insert_count']

$result = mysql_query("SELECT COUNT(id) FROM `$sql`");
$count_id_tmp = mysql_fetch_row($result);
insert_count = $count_id_tmp[0];
$id++;

for($a = 1; $a <= $insert_count; $a++)
{
$eintrag = "INSERT INTO `§sql`
(id, teatigkeit, produkt, bemerkung)
VALUES
('$id', '', '','')";

$eintragen = mysql_query($eintrag);
$id++;
}
unset($_POST['submit']);


	// Ende Neue Zeilen hinzufühen
        break;
    case 2:
        // Daten in Datenbank Eintragen

$nr = 1;
$sql = "zeiten";

$abfrage = "SELECT id FROM `$sql` WHERE taetigkeit = ''";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   
	$id = $row->id;

$taetigkeit = $_POST['taetigkeit'];
$product = $_POST['product'];
$beschreibung = $_POST['beschreibung'];


$aendern = "UPDATE `$sql` Set taetigkeit = $taetigkeit WHERE id=$id";
$update = mysql_query($aendern);

$aendern = "UPDATE `$sql` Set product = $product WHERE id=$id";
$update = mysql_query($aendern);

$aendern = "UPDATE `$sql` Set beschreibung = $beschreibung WHERE id=$id";
$update = mysql_query($aendern);


$nr++;
   

}

unset($_POST['submit']);





	// Ende Daten in Datenbank Eintragen
        break;






?>
 
Zuletzt bearbeitet:
nutz doch einfach den code-tag oder gar den php tag. da bleiben einrückungen erhalten und bei php-tag gibts sogar syntax highlight :)
 
Also ich hab mal während Dr. House gucken ne Stunde Zeit gefunden.

Die Anwendung kann auf btn drück Zeilen erstellen. Jede Spalte ist editirbar und die Daten der Tabelle können auf Knopfdrück zum Server gesendet werden.

Die Anwendung hat 2 Methoden um mit den Server zu kommunizieren. LoadData (Beim start wird die ausgeführt und liefert eine liste an Daten zurück die z.B aus einer DB kommen) und eine SaveData Methode um die Daten der Tabelle auf den Server zu senden und dort zu speichern. Die war.7z muss auf einem tomcat deployed werden. Dazu einfach die war Datei in WebAnwendung umbennen und das 7z in eine zip Datei wandeln und nach .war umbennen. Tomcat entpacken und die .war unter WebApps einfügen. Dann die startup.bat im ordner /bin ausführen. Im browser dann localhost/WebAnwendung aufrufen. Ist praktisch ein anderes XAMPP.

Um den src dode zu nutzen braucht ihr eclipse mit dem gwt plugin. Wenn ihr das habt erstellt ein neues GWT Projekt mit dem namen WebApp und überschreibt den src ordner mit dem angehängten. So sollte alles auf die schnelle sein.
 

Anhänge

  • WebAnwendung.PNG
    WebAnwendung.PNG
    18,6 KB · Aufrufe: 39
  • src.zip
    src.zip
    7 KB · Aufrufe: 8
  • war.7z
    war.7z
    7,7 MB · Aufrufe: 15
Einfach großartig. Immer wieder unterhaltsam. Darf man Fragen, was du eigentlich studierst und in welchem Semester du bist?

BTW: Für ~3 Wochen Arbeit ein ~50 € Buch besorgen kommt mir ein bisschen "overkill" vor. Das kann ich dann machen, wenn ich mal ein weitaus umfangreicheres Projekt zu diesem Thema machen muss (was aber in naher Zukunft nicht der Fall sein wird).

Ja, Bücher sind echt Overkill. Da stehen so viele Details und Erklärungen drin. Am Ende versteht man vielleicht sogar noch ein bischen von dem, was man macht. Lieber weiterhin fleißig Code-Stücke zusammenkratzen und notdürftig anpassen, in der Hoffnung, dass dann irgendwann mal irgendwie alles funktionieren möge. Mal ganz abgesehen davon, dass das Buch und das Wissen, das du dir damit aneignest ja nicht nur für dieses eine Projekt gültig sind. Oder hast du danach nie wieder vor irgendetwas in der Richtung zu machen?

Im Übrigen bezweifle ich langsam, dass dir drei Wochen reichen werden.

Die war.7z muss auf einem tomcat deployed werden. Dazu einfach die war Datei in WebAnwendung umbennen und das 7z in eine zip Datei wandeln und nach .war umbennen. Tomcat entpacken und die .war unter WebApps einfügen. Dann die startup.bat im ordner /bin ausführen. Im browser dann localhost/WebAnwendung aufrufen. Ist praktisch ein anderes XAMPP.

Ich habe so meine Zweifel, dass er diese "Hürde" nehmen wird. Falls er es überhaupt versucht.
 
Zuletzt bearbeitet:
Naja der COde ist vielleicht nicht unbedingt Anfänger freundlich. Man könnte aber eine Menge dabei lernen. Diese Hürden es einzurichten hat man einmal dann kann man es immer wieder verwenden. Allerdings muss man es wollen. Ich würde tippen er studiert wirtschaftsinformatik.
 
ich mein, irgendwann füllt sich nunmal die db, und das muss angezeigt werden.
Okay, jetzt weiß ich, was du meinst. Ich hätte allerdings nicht vorgehabt, dem MA bei neuen Eingaben auch immer alles anzuzeigen, das er schon in seiner DB stehen hat. Deswegen haben mich die Zeilen irritiert.
Meine Idee wäre gewesen, den MA im Formular ausschließlich Daten eingeben zu lassen und ihm nach Klick auf "Bestätigen" seine gesamte DB anzuzeigen.
und nochmal wegen dem folgenden:
wozu willst du irgendwelche anderen php dateien erstellen? wenn du das in ne funktion auslagerst - mag ja sein. aber alles andere ist doch unnötig. du brauchst an und für sich NUR diese eine datei (bei dir wohl formular.php genannt). im jetzigen stadium ist das völlig ausreichend.
Ja, hast eh recht, aber für mich persönlich ist es derzeit noch leichter, alles möglichst zu "zerteilen". Klingt jetzt vielleicht etwas paradox, aber so weiß ich, dieser Code in diesem File macht genau das, und jener in diesem anderen File genau das, etc. ... Wenn ich einen langen Code (vielleicht auch noch ein Gemisch aus html, php und Javascript) habe, verliere ich bei dem Zeug hier den Überblick. Ich hätte eher zum Schluss dann probiert, alles zusammenzufügen, das man zusammenfügen kann.
gut, nächster punkt: wieso funtzen die buttons nicht. bzw wieso kann ich die nicht unterscheiden
Bei mir machen beide genau das richtige. Mein Problem ist, dass sie allerdings nur 1 Mal funktionieren. Bei "Bestätigen" ist das ja noch egal, aber beim anderen Button kann ich so keine weiteren Zeilen einfügen.

Die beiden Codes von euch schau ich mir jetzt an.
----------

@ Rho
Mein Studium tangiert Datenbanken und Webseitenerstellung nur im Entferntesten. Wir hatten es gerade so "umfangreich", dass ich mich überhaupt noch erinnern konnte, da gab's ja was mit Apache und phpmyadmin ...
In meinem restlichen Studium werde ich damit auch sicher nichts mehr zu tun haben. Im Berufspraktikum auch nicht und im Arbeitsleben später kann ich es mir auch kaum vorstellen. Deswegen hole ich mir jetzt auch nicht für 3 Wochen Arbeit sauteure Bücher.

Und nein, es ist nicht Wirtschaftsinformatik.

@XPrototypeX
Danke, ich schau's mir so bald ich Zeit habe an, aber wie gesagt: Ich bleibe bei der aktuellen Lösung über html und php. Sonst wäre ja jetzt schon eine Woche Arbeitszeit für nichts gewesen und ich würde wieder mind. eine weitere in die Einarbeitung in was ganz neues verlieren.
 
Zurück