• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

MySQL und php

Lars23

New member
Hallo,
ich habe Daten in einem Frame die ich in einer Datenbank speichern möchte, die Daten sind in einer Tabelle und die Tabelle ist nicht immer gleich groß. Mal sind es 3 Felder die übergeben werden müssen mal 10.

Wie kann ich das am besten umsetzen?
 
Ich würde dir gerne helfen nur mit dieser beschreibung weis ich nicht wo ich anfangen soll.

Poste doch mal deine bisherigen ansätze?

Wie du die Daten übergibst und wie deine Struktur ist.
 
erstmal danke, also ich habe im moment einen frame wo ich über auswahlfelder werte an einen anderen frame übergebe. dort werden die werte umgerechnet und in einer tabelle ausgegeben.
jetzt möchte ich die tabelle bei einem klick auf einen button eine spalte der tabelle auslesen und in der datenbank speichern.
die datenbank habe ich noch nicht angelegt, da ich mich vorher informieren wollte.
die ausgabe sieht so aus
ware 1 = 2
ware 2 = 3
ware 3 = 12

nun soll von ware 1 die anzahl (also 3) in der datenbank mit datum gespeichert werden
alle 3 sollen in einen datensatz.

wenn ich dann später die datenbank abfrage möchte ich einen zeitraum angeben und er soll mir dann eine liste ausgeben die so aussehen soll

23.05.2005 bis 12.10.2005

ware 1 = 295
ware 2 = 124
ware 3 = 620

so hatte ich mir das erstmal vorgestellt. ob man das so umsetzen kann weiß ich nicht genau.
 
Ich muss gleich weg aber hier eine Kurzschilderung wie es möglich wäre:

Erstelle eine DB - erstelle eine tabelle - erstelle die felder nach der maximalanzahl der werte die möglich sind zB 10 plus 1 feld für die laufende nummer (id) und ein feld für das datum - wenn du die Daten in die Tabelle einliest vom anderen Frame sind die ja in einer Variabel gespeichert, diese variable schreibst du mit dem INSERT befehlt von mysql in deine DB zusätzlich lässt du dir noch das datum mitspeichern und dann kannst du mit einer einfachen abfrage eine gewünschte ausgabe erziehlen.

so muss jetzt los, vielleicht später mehr


cu
 
ok, habe mich dann gerade mal dran gesätzt, eine frage hab ich aber noch, welcher datentyp ist für ganze zahlen am besten? sollte am besten ganze zahlen unterstützen die auch groß sein können. was ist der maximalwert bei ganzen zahlen?
 
irgendwie funktioniert das mit den speichern der daten in der datenbank nicht,
also ich gebe die werte in dem zweiten frame aus, dann soll er diese werte beim klick auf einen button in der datenbank speichern
also wenn ich den button senden klicke soll es gespeichert werden
HTML:
<form action = "blabla.php" method = "post">
<INPUT TYPE="submit" name="senden">
</form>

die datei blabla.php sieht so aus:
PHP:
      mysql_connect();
      mysql_select_db("test");

      $sqlab = "insert testtt";
      $sqlab .= "(datum, no1, no2, no3) values ";
      $sqlab .= "('$datum', '$menge1', '$menge3')";

      mysql_query($sqlab);

aber wenn ich es so laufen lassen sagt er mir das die variablen menge1 -10 nicht vorhanden sind.
die benutze ich aber in der datei wo der senden button ist noch und da funktionieren die auch.

wo ist mein fehler?
oder würde das so gar nicht funktionieren?

ich bin für jeden tipp dankbar.
 
Zuletzt bearbeitet:
Hm ich arbeite nicht mit Frames aber versuchs mal so!

HTML:
<form name="sender" method="post" action="blabla.php">
  <input type="text" name="menge1">
  <input type="text" name="menge2">
  <input type="hidden" name="update">
</form>

PHP:
<?
$update = $_REQUEST['update'];
$menge1 = $_REQUEST['menge1'];
$menge2 = $_REQUEST['menge2'];

$con = mysql_connect($host, $user, $pass);
if($con) or die("Keine Verbindung zur DB");

$sel = mysql_select_db($dbname, $con);
if($sel) or die("Datenbank nicht gefunden");

if($update=='now') {
	
	$sql = mysql_query("INSERT testtt SET menge1='$menge1', menge2='$menge2'");
	if($sql) { echo "Erfolgreich eingetragen"; }else{ echo "Fehler beim eintragen"; }                								           										                                                       
}
 
?>

Das is nicht getestet nur mal so, aber denke so sollte es funzen.
Werden die Vars den überhaupt übergeben?

Lass dir die doch mal ausgeben auf der seite wo das updatescript ist ob die da überhaupt ankommen.
 
hmm, die variablen werden gar nicht übergeben. woran kann das liegen und wie kann ich das vermeiden?

also nochmal ne kurze beschreibung wie das alles aufgebaut ist:

ich wähle in einem frame über auswahlfelder einen wert aus.
der wert wird dann per klick in einem anderen frame ausgegeben.
wenn ich nun wieder per klick im zweiten frame der wert in der datenbank speichern will kennt er in der datei die variable nicht mehr
 
hab eine lösung gefunden, speichere die daten vom ersten frame aus in der datenbank, dann klappt es.
aber nun kommt eine neuer frage:

er überschreibt mir jetzt immer den datensatz in der db
ich muss ihm wohl irgendwie sagen das er für jeden satensatz den er speichert ein neuen machen soll.

wie mache ich dies?
 
Hast du ein inkrementelles ID Feld erzeugt in der DB?

einfach noch ein Feld mit dem

namen- id
typ- int
auto_inkr

Damit hast du ne Laufnummer die sich bei jedem Datensatz um 1 erhört!
 
und wieder eine frage:
ich habe ca. 50 datensätze mit dem gleichen datum, ist es möglich bei der ausgabe der datensätzediese zusammenzufassen?

die datensätze sehen so aus:
datum, nr1, nr2, nr3, nr4
12.01.2005, 45, 45, 448, 96
12.01.2005, 98, 125, 4778, 9776
12.01.2005, 455, 1245, 148, 496

also wenn mehrere datensätze mit gleichem datum vorhanden sind soll er einen datensatz ausgeben der so aussieht:

12.01.2005, 598, ..., ...,

also die zahlen addiert
 
Zuletzt bearbeitet:
Du willst das alle Datensätze die das selbe Datum haben in eine Zeile geschrieben werden ?

12.01.1975 datensatz1[menge1],datensatz1[menge2], datensatz2[menge1],datensatz2[menge2],..
12.02.1975 datensatz1[menge1],datensatz1[menge2], datensatz2[menge1],datensatz2[menge2],..

^^ so oder wie ?
 
select datum, sum(nr1), sum(nr2), ... from tabelle where <bedingung> group by datum order by 1 asc
 
also irgendwie bekomme ich es nicht hin.

muss ich jetzt erst alle datensätze einlesen?
oder kann ich direkt die felder addieren?
wie muss ich den datensatz mit dem datum und den addierten werten ausgeben?
 
Zuletzt bearbeitet:
so das funktioniert jetzt, aber da kommt auch die nächste frage:

ich habe drei auswahlfeld wo man ein datum eingeben kann, dieses soll dann übergeben werden und als kette
in einer variablen gespeichert werden.

z.b.

auswahlfeld1 2005
auswahlfeld2 05
auswahlfeld3 27

soll in der variablen so aussehen:

2005-05-27

wie mache ich das?
 
Zurück
Oben