Patrick.Karre Geschrieben 31. Juli 2003 Teilen Geschrieben 31. Juli 2003 Hallo Leute, ich habe ein Array in dem ich mehrere Werte stehen habe, wie kann ich jetzt damit ein DropDown Feld fühlen, und wie bekomme ich den ausgewählten Wert da dann wieder raus ??? MfG Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 31. Juli 2003 Teilen Geschrieben 31. Juli 2003 Hi, diese lässt sich per For Schleife realisieren echo"<select name='ausgabe' width='24%'>"; for ($i=0 ; $i<$x; $i++) { echo"<option value='$arryname[$i]'>"; echo"<b>$arryname[$i]</b>"; } echo"</select>"; [/php] Hier wird der Inhalt des Arrays durchlaufen und das Menü Select eingebunden. Vielleicht hiflt dir das weiter MfG Tool-Time Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 31. Juli 2003 Teilen Geschrieben 31. Juli 2003 wenn du das wie Oben beschrieben machst, aber als Value nicht den Inhalt sondern die Zählvariable angibst, kannst da darüber wieder ganz leicht auf dein Array zugreifen. <select name="MeineAuswahl" size="1"> <?php # hier die Schleife echo "<option value='$i'>$arryname[$i]</option>"; ?> </select> [/php] mit [php] $arrayname[$_POST["MeineAuswahl"]] greifst du dann wieder auf das Array zu Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 31. Juli 2003 Autor Teilen Geschrieben 31. Juli 2003 Danke, ich werde jetzt versuchen das ganze mal umzusetzen. MfG Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 1. August 2003 Autor Teilen Geschrieben 1. August 2003 Ein Problem habe ich jetzt doch noch. Ich möchte wenn ein Wert ausgewählt wurde, dieser in meine Datenbank reingeschrieben wird. Ich lese bis jetzt eine Textdatei aus, die erste Zeile enthält die Felder die auch im DropDown Menü angezeigt werden. Die einzelnen Felder ordne ich dann bestimmten Feldern der Datenbank zu. Jetzt müsste ich ja wissen an welcher Position das Feld steht, damit ich die Nachfolger auch in die Datenbank schreiben kann. Wie stelle ich dies am besten an ??? MfG Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
eax Geschrieben 1. August 2003 Teilen Geschrieben 1. August 2003 hallo, kann sein, dass ich da etwas falsch verstehe... aber generell kannst du dir aussuchen in welches feld du bei der datenbank schreibst... mysql insert into tabellen_name (spalte1, spalte2) values ('Wert1', 'Wert2'); mfg eax Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 1. August 2003 Teilen Geschrieben 1. August 2003 Guten morgen , ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe , aber du könntest mit einer if und else Abfrage lösen . Sprich if ($MeineAuswahl==1) => speicher in Datenbank Feld 1 else => speicher in Datenbank Feld 2. bzw. es geht noch einfacher - wenn die Bezeichnung der Felder aus dem Text dem der Datenbank entprechen, dann kannst du es wie folgt machen $db_array = mysqL_connect($mysqlhost, $mysqluser, $mysqlpassword) if(!$db_array) echo"<div align='center'> Beim Verbinden der Datenbank ist eine Fehler aufgetretten"; else { mysql_select_db($mysqldb); $sql_array = "inter into <tabellen name > (<felder der tabelle>) values (<Daten die gespeichert werden solln>) where <feldname> = dein feld } [/php] Bin mir nicht ganz sicher , aber es dürfte so funktionieren MfG Tool-Time Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 1. August 2003 Teilen Geschrieben 1. August 2003 Original geschrieben von Tool-Time $sql_array = "inter into <tabellen name > (<felder der tabelle>) values (<Daten die gespeichert werden solln>) where <feldname> = dein feld } [/php] [/b] Ich denke mal das soll ein Insert sein. Bei einem Insert gibt es kein WHERE. Warum auch. Du fügst ja einen neuen Datensatz ein und willst nicht irgendeine Auswahl auf irgendwas beschränken... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 1. August 2003 Autor Teilen Geschrieben 1. August 2003 Aber wie weis ich welches Feld dem DB Feld zugeordnet war. Ich raf ich das jetzt einfach nicht. Wenn ich in dem DropDown ein Feld zuordne, muss ich dieses Feld für jeden Wert neu beschreiben, wie kann ich das jetzt wieder meinem Datenbankfeld zuordnen ??? MfG Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 1. August 2003 Teilen Geschrieben 1. August 2003 @Patrick also ich weiß nicht wie es den anderen geht, aber ich weiß absolut nicht was du nun machen willst. Vielleicht beschreibst du das Problem noch mal verständlich. Was steht in der Datenbank? Was soll da rein? Was steht in der Textdatei? Warum überhaupt eine Textdatei? ... Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 1. August 2003 Autor Teilen Geschrieben 1. August 2003 Ich habe eine Textdate die meine Importdatei darstellt. Hier befinden sich die einzelnen Felder mit einem komma getrennt drinnen. Damit ich die Felder der Textdatei meinen Felder der Datenbank zuordnen kann, werden die Felder der Textdatei in ein DropDown Menü den Felder der Datenbank gegenüber gestellt. Da ich aber die einzelnen Felder Zeilenweise aus der Textdatei importieren muss, weiss ich nicht wie ich die zuordnung erhalten kann, da der Benutzer ja nur einmal die Zuordnung bestimmen soll. Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 3. August 2003 Autor Teilen Geschrieben 3. August 2003 Hier ist der Code den ich bis jetzt hinbekommen habe. Die erste Zeile meiner Importdatei wird auch in das DropDown geladen, aber ich glaube die Zuordnungen der folgenden Zeilen stimmen nicht ganz. list($Zeile, $Inhalt) = each($GInhalt); $FelderDatei = explode(",", $Inhalt); while(list($Zeile, $Inhalt) = each($GInhalt)) { $array = explode(",", $Inhalt); for($i=0; $i < 3; $i++) { $FelderDatei[] = array("$FelderDatei[$Nr]" => explode("," ,$Inhalt)); } $Nr = $Nr + 1; } $Nr = 0; for($f = 0; $f < 12; $f++) { echo "<tr><td>"; echo "<select name='$FelderDB[$Nr]' width='24%'>"; echo "<Option value='$FelderDB[$Nr]'>"; echo "<b>$FelderDB[$Nr]</b>"; echo "</select>"; echo "</td>"; echo "<td>"; echo "<select name='Feld$Nr' width='24%'>"; for($i = 0; $i < 3; $i++) { echo "<Option value='$FelderDatei[$i]'>"; echo "<b>$FelderDatei[$i]</b>"; } echo "</select>"; echo "</td></tr>"; $Nr = $Nr + 1; echo "<br>"; } Wo liegt mein Fehler in der Array zuordnung ??? Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 4. August 2003 Autor Teilen Geschrieben 4. August 2003 Ich glaube was ich möchte, habe ich oben nicht richtig rübergebracht. Das Array wird mit den einzelnen Zeilen der Textdatei geladen. Nach der Zuordnung, soll je nach zuordnung die Textdatei Zeilenweise in die Datenbank importiert werden. Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 4. August 2003 Teilen Geschrieben 4. August 2003 for($i=0; $i < 3; $i++) { $FelderDatei[] = array("$FelderDatei[$Nr]" => explode("," ,$Inhalt)); } [/php] Du müsstest hier bei $FelderDatei[$i] einsetzten , damit das Array auch durchlaufen wird. Ansonsten setzte du jeweils den neuen Eintrag auf $FelderDatei[0] . Array Beispiel : [php] $tp = array(a,b,c,d,e); $worte = explode(";" , $konfig); $lg = sizeof($worte); for($i=0; $i<$lg; $i++) { $tp[$i] = $worte[$i]; } echo"$tp[0]"; echo"<br>"; echo"$tp[1]"; ..... Du kannst nun die einzelnen Array Felder per $FelderDatei[0-x] abfragen. Könntest du uns bitte einmal die ImportDatei hier Posten, vielleicht hiflt uns diese dein Problem besser zu verstehen . MfG Tool-Time Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 4. August 2003 Autor Teilen Geschrieben 4. August 2003 Die Importdatei sieht wie folgt aus: Vorname, Name, Telefon, Faxnummer, usw... Patrick, Karré, 0179928xxx, 0618178xxx, usw.... ... Diese Daten müssen je nach zuordnung dann in die Datenbnak geschrieben werden. Die obere Lösung währe glaube ich nur für eine Zeile geeignet. Wie wäre es wenn ich mit dreidimensionalen Array´s arbeiten würde. So das der Vorname mehrere Werte bekommt, der NAchname mehrere Werte bekommt usw. Dann müsste ich doch je nach zuordnung die Daten in der richtigen reihenfolge in die Datenbank bekommen ??? Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 4. August 2003 Teilen Geschrieben 4. August 2003 Schau die bitte einmal folgende Site an . Quelle : http://de2.php.net/manual/de/language.types.array.php Weil der Wert eines Arrays irgendetwas sein kann, kann dieser Wert wiederum ein Array sein. Somit können Sie rekursive und multidimensionale Arrays erzeugen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 4. August 2003 Teilen Geschrieben 4. August 2003 Original geschrieben von Patrick.Karre Die Importdatei sieht wie folgt aus: Vorname, Name, Telefon, Faxnummer, usw... Patrick, Karré, 0179928xxx, 0618178xxx, usw.... ... Dann müsste ich doch je nach zuordnung die Daten in der richtigen reihenfolge in die Datenbank bekommen ??? Gruß Patrick Wenn die Zuordnung so ist wie oben beschrieben, und bei allen gleich , dann weißt du ja welcher Wert welchem Feld zu geordnen werden kann . Somit spielst du die Daten einfach per insert Befehl (siehe oben) in deine Datenbank ein. MfG Tool-Time :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 4. August 2003 Teilen Geschrieben 4. August 2003 Hab gerade auch sowas gemacht. Hier mal meine Lösung: # dazu zuerst Projekte Datei einlesen $PrjDat = "Hier steht dein Dateiname"; $fp = fopen ($PrjDat, "r"); # Datei zeilenweise in Array einlesen $arFile = file($PrjDat); fclose ($fp); # nur fortfahren wenn Daten vorhanden if (count($arFile)>1) { # Überschriften nicht beachten, Anfang bei $x=1 for($x=1;$x<count($arFile);$x++) { # Array in einzelne Felder aufspalten $arData = explode($CSVSepChar, $arFile[$x]); $sqlStr = sprintf($SQL_INS_PRJ, QuotedStr($arData[0]), QuotedStr($arData[1]), QuotedStr($arData[2])); mysql_query($sqlStr); # hier noch die Variable die für das SQL benutzt wird: $SQL_INS_PRJ = "INSERT INTO projekte VALUES (%s, %s, %s)"; # Trennzeichen für Felder in den csv-Dateien $CSVSepChar = ";"; # müsste bei dir ein Komma sein [/php] Moment, mir ist gerade aufgefallen, dass ich das fopen und fclose ja eigentlich nicht brauche, oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 4. August 2003 Autor Teilen Geschrieben 4. August 2003 Also, mal schauen ob ich das jetzt richtig verstanden habe. Da die Importdatei leider nicht optimal angeordnet sein wird, muss ich die erste Zeile einlesen und dann meinen Feldern in der Datenbank gegenüber stellen. Durch DropDown Menüs kann ich die einzelnen Felder zuordnen. Diese Zuordnung merke ich mir. Jetzt lese ich die Textdatei zeilenweise aus, schaue nach welcher Wert in dem Array welche zuordnung bekommen hat und spiele diese dann in die Datenbank ein. Das Spiel wiederhole ich so oft, bis alle zeilen von der Rextdatei in die Datenbank reingeschrieben worden ist. Stimmt dies so, oder macht ich gerade einen denkfehler ??? Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 4. August 2003 Teilen Geschrieben 4. August 2003 Original geschrieben von Patrick.Karre Also, mal schauen ob ich das jetzt richtig verstanden habe. Da die Importdatei leider nicht optimal angeordnet sein wird, Warum das denn? Oder soll diese Importfunktion für beliebige Dateien funktionieren? Ansonsten kannst du doch vorgeben, wie die Feldreihenfolge aussehen soll. Das ist dir programmiererische Freiheit Ich (besser gesagt nicht ich, ich hab dann aber geholfen das zu lösen) hab letztens auch so ein Problem gehabt. Ein Importprogramm für Adressdaten konnte Daten aus csv-Dateien einlesen, nur brauchte es ein ganz spezielles Format dieser Dateinen (Feldreihenfolge war noch das geringste Problem). Das war übrigend kein Programm von irgendeinem Hersteller, aber es war auch nicht MS Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 4. August 2003 Autor Teilen Geschrieben 4. August 2003 Es kann eine beliebige Datei mit einer Feldanordnung sein. Daher muss die Feldzuordnung offen gestaltet sein. Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 4. August 2003 Teilen Geschrieben 4. August 2003 Wenn der Aufbau der Datei offen sein soll, würde ich das so lösen : Der ersteller der Datei muss in der ersten Zeile der Datei seinen Aufbau nach dem Schema wie oben , angeben. Nun kommen die einzelnen Werte getrennt mit einem , . Da du ja den Aufbau der Datei in der ersten Zeile hast, kannst du nun die Abfragen ob Wert 1 => Nachname oder Vorname .... per if und else realisieren. MfG Tool-Time Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 4. August 2003 Autor Teilen Geschrieben 4. August 2003 Die Idee ist zwar gut, aber wenn ich 15 Werte oder mehr importiere, wäre das eine Hammerabfrage. Ich denke ich komme da mit Wertzuweisung von dem Array schneller zum Ziel. Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 5. August 2003 Teilen Geschrieben 5. August 2003 Also das mit den Spaltennamen in der ersten Zeile ist nach dem CSV-Dateiformat so vorgegeben. Spalten werden mit ',' voneinander getrennt, in der ersten Zeile die Spaltennamen und dann je Datensatz eine neue Zeile. Nur Excel macht das natürlich wieder nur mit ';' als Spaltentrenner... MS eben Mach es doch einfach so, dass du die Spaltennamen in einer Tabelle anzeigst. Je Spaltenname eine Zeile. Neben dem Spaltennamen machst du ein Input-Feld, in das man die Position des Feldes eingeben muss (also 1 oder 3 oder 10 usw.) Diese Inputs liest du auch in ein Array, das ja dann genausogross wie das mit dem Spaltennamen ist und schon hast du eine Zuordnung: $ArrayMitNamen $ArrayAusInputs Feld1 1 Feld2 3 Feld3 2 . . . . Das ist nicht ganz so schön und komfortabel, aber es ist recht einfach zu machen. Ansonsten reicht es doch für ein Insert wenn du die Feldnamen hast: "INSERT INTO ZIEL ($ZIELFELD1, $ZIELFELD3, $ZIELFELD2) SELECT $QUELLFELD1, $QUELLFELD2, $QUELLFELD3 FROM QUELLE" [/php] Das SQL müsste so eigentlich funktionieren... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 5. August 2003 Autor Teilen Geschrieben 5. August 2003 Hmmm, ich schau einfach mal wie ich es am besten umsetzen kann. Wenn ich eine Lösung habe, werde ich diese hier Posten. Gruß Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.