InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare

Thema: Verkettete Auswahllisten (Drop-Down-Liste) dynamisch aus einer DB-Tabelle generieren Artikel anzeigen

Werner schrieb am Samstag, den 26 September 2020 #31
Hallo Marcel,
Wenn ich richtig verstanden habe dann sollen bestimmte Datensätze (Zeilen) von Tabelle 1 zu Tabelle 2 kopiert werden?
Marcel ✶✶✶✶✶ schrieb am Sonntag, den 27 September 2020 #32
Hallo Werner,

ja genau. Entweder kopiert oder ein Verweis auf die erste Tabelle (ID). Wobei mir eine Kopie viel lieber ist.

Viele Grüße Marcel
Werner schrieb am Sonntag, den 27 September 2020 #33
Da habe ich einen tollen Tipp für dich, das kannst du mit dem Programm phpMyAdmin erledigen.
Ich persönlich verwende schon seit Jahren den Adminer adminer.org/

Bestimmte Datensätze können da ganz einfach kopiert (exportiert) werden (siehe Bild)

adminer_447.png

Orginalgröße: 1662 x 991 Pixel
marcel ✶✶✶✶✶ schrieb am Sonntag, den 27 September 2020 #34
Erstmal besten Dank Werner,

manueller Eingriff ist ja immer möglich. Mir geht es viel mehr darum einen Kalender (nach datum sortiert) mit Datensätzen (Sammlung) wiederholt befühlen zu können. Daher kommt mir hier dein Skript entgegen. Die Daten werden durch die Auswahl in eine "arr" geschrieben. Das ist schon mal MEGA. Dieser Auswahl hätte ich gerne noch um ein Datum und paar diverse andere Informationen im selben Formular in eine neue/andere Tabelle in der Datenbank geschrieben. Zugegeben Java ist nicht meine Stärke 😉
Die Auswertung deiner "arry" wird aber als Liste ausgegeben, daher dachte ich, es sollte möglich sein die Daten wieder per "value" in einem Formular zu holen oder die Ausgabe einzeln zu übergeben.

Vielleicht einfach die "AUSWAHL" statt anzuzeigen in neue Formularfelder zu übertragen, die ich dann in eine andere Tabelle schreiben kann.

Beispiel:

Habe Kundendaten die ich in "tabelle1" abgelegt habe. Diese kann ich mit deinem Skript bestens aussuchen. Statt diese aber als Liste zu zeigen, einfach in neue Felder (VALUE) übertragen. Dann brauche ich nur noch die restlichen (zusätzlichen) Felder ausfüllen und muss nicht jedes mal die Kundendaten neu eingeben.
Hoffe es diesmal genauer beschrieben zu haben.

Abendliche Grüße Marcel
Werner schrieb am Montag, den 28 September 2020 #35
Hallo Marcel,
ich habe dir ein einfaches Beispiel erstellt den Rest schaffst du auch alleine 😁
Peter schrieb am Dienstag, den 29 September 2020 #36
Warum die gleichen Daten in mehren Tabellen schreiben?

Lösungsvorschlag:
zB. tabelle1 = kunden,
tabelle2 = adressen,
tabelle3 = artikel,
tabelle4 = bestellungen,
tabelle5 = bestelldetails,
usw...

Tabellen verbinden und dann Abfragen über mehrere Tabellen mittels "Join".
Das ist schnell, frei von Redundanz und wartungsarm (sollte mal ein Datensatz geändert werden müssen).
marcel ✶✶✶✶✶ schrieb am Dienstag, den 29 September 2020 #37
Das ist ja so Geil Werner!
Du hast meine Nächte gerettet 😀
Spitze, ja damit komme ich weiter.

eine kurze Frage noch zur Auswahl in einer "checkbox".
Wenn ich in tabelle1 etwas über "checkbox" eingetragen habe, ist es möglich das auch wieder in eine "checkbox" wiederzugeben?

heist im Klartext: Wenn eine "auswahl1" bereits einen Wert in "Tabelle1" hat, kann ich den Wert in Form einer Checkbox auch in Tabelle2 übertragen?

document.getElementById("auswahl1").value = obj.auswahl1;

damit kann ich die Werte in ein typ="text" übergeben, kann ich damit aber einfach nur Hacken in checkbox setzen und wenn leer dann den leeren Wert übergeben?

Besten Dank Werner.
Viele Grüße Marcel
Werner schrieb am Dienstag, den 29 September 2020 #38
Ich habe da für die Checkbox in der Tabelle den Spaltentyp INT (integer) verwendet. dieser hat entweder den Wert: 0 oder: 1.
........

Peter hat recht, Kunden und die Adressen der Kunden sollten getrennt in zwei Tabellen gespeichert werden. Und dann über eine Referenz-ID miteinander verknüpft sein mit der man die Daten dann komplett auslesen kann.

Meine Aufgabe ist das nicht, muss jeder für sein Projekt selbst entscheiden, bestehende Datensätze in einer Tabelle lassen sich halt nur schwer trennen ...

Nachtrag: Ich habe den Link nun wegen fehlender Antwort wieder entfernt!

Unter dem folgenden Link finden Sie eine angepasste Version:
» werner-zenk.de/mysql/daten_ueber_eine_auswahlliste_in_ein_formular_laden.php
HyperOp ✶✶✶✶✶ schrieb am Dienstag, den 8 Dezember 2020 #39
Danke für diese Manual, hat mir sehr geholfen! 👍
Alfred schrieb am Sonntag, den 27 Juni 2021 #40
Hallo, ich bin verzweifelt.
Eventuell kann mir hier jemand weiterhelfen, denn ich komme einfach nicht weiter habe einen Knoten im Kopf.
Ich habe in einer DB einige Links angelegt die ich als horizontales Menu anzeigen möchte.
Bei Klick auf den Hauptlink sollen sich die Unterlinks anzeigen und bei hover auf einen Unterlink eventuell vorhandene Subsublinks, also die Kindelemente die wiederum zu anderen Kindelementen gehören.

So steht es in der DB
+----+--------+------+----------------+
| ID | parent | prio | Categorie |
+----+--------+------+----------------+
| 1 | NULL | 0 | Menue 1 |
+----+--------+------+----------------+
| 2 | NULL | 1 | Menue 2 |
+----+--------+------+----------------+
| 3 | NULL | 2 | Menue 3 |
+----+--------+------+----------------+
| 4 | 1 | 0 | Untermenue 1 |
+----+--------+------+----------------+
| 5 | 1 | 1 | Untermenue 2 |
+----+--------+------+----------------+
| 6 | 1 | 2 | Untermenue 3 |
+----+--------+------+----------------+
| 7 | 2 | 0 | Untermenue 1 |
+----+--------+------+----------------+
| 8 | 2 | 1 | Untermenue 2 |
+----+--------+------+----------------+
| 9 | 3 | 0 | Untermenue 1 |
+----+--------+------+----------------+


So ist zur Zeit die Ausgabe

Menu 1
----Submenu 1 zu 1
----Submenu 2 zu 1
----Submenu 3 zu 1

Menu 2
------Submenu 1 zu 2
------Submenu 2 zu 2
------------Subsubmenu 1 zu 2 .2
------------Subsubmenu 2 zu 2 .2
------Submenu 3 zu 2

Menu 3
------Submenu 1 zu 3
------------Subsubmenu 1 zu 1 .3
------Submenu 2 zu 3
------Submenu 3 zu 3
------------Subsubmenu 1 zu 3 .3
------------Subsubmenu 2 zu 3 .3
------------Subsubmenu 3 zu 3 .3
------------Subsubmenu 4 zu 3 .3
------------Subsubmenu 5 zu 3 .3

<?php

define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'as_cms');

/* Versuche, eine Verbindung zur MySQL-Datenbank herzustellen */
$dblink = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

$admin_nav = mysqli_query($dblink, ' SELECT `id`, `parent`, `prio`, `name` FROM `as_newlinkmenue` ORDER BY `parent` ASC, `prio` ASC');

$config = array();
while ($row = mysqli_fetch_assoc($admin_nav)) {
// Nun kann festgelegt werden was mit den Variablen passieren soll
$config[$row['parent']][$row['id']] = $row['name'];
}
function dumpNodes($config, $parent=0)
{
echo "<ul>\n";
foreach ($config[$parent] as $id => $name) {
echo '<li>', htmlSpecialChars($name);
if (isset($config[$id])) {
dumpNodes($config, $id);
}
echo "</li>\n";
}
echo "</ul>\n";
}

dumpNodes($config);


?>
Die Anzeige funktioniert soweit sehr gut, ich weiß nur nicht wie ich das ganze formatiere damit mir die Links mit allen Kindelemente und deren Kindelemente als horizontales Menu angezeigt wird.