Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Php 5.3 - Abgefragte Auswahlliste auswerten

Frage Entwicklung PHP

Mitglied: tray-park

tray-park (Level 1) - Jetzt verbinden

13.06.2011, aktualisiert 20:22 Uhr, 4087 Aufrufe, 8 Kommentare

Mal wieder ein NEWBIE.

2 Tabellen sind von dem Thema betroffen

1. Gruppen
gruppen_id, gruppen_name

2. Dokumente
dok_id, dok_gruppe, dok_typ

Hi,

ich habe eine Auswahlliste deren Werte auf einer Tabelle basieren. In meinem Fall kann der User eine Gruppe auswählen.

01.
... 
02.
                . "<tr>" 
03.
		. "<td>Gruppe:</td>" 
04.
		. "<td><select name='gruppen[]' />"; 
05.
		 
06.
		$sqlab = "select gruppen_id, gruppen_name from gruppen"; 
07.
		$res = mysql_query($sqlab); 
08.
		 
09.
		while ($dsatz = mysql_fetch_assoc($res)) 
10.
11.
				$gruppen_id = $dsatz["gruppen_id"]; 
12.
				$gruppen_name = $dsatz["gruppen_name"]; 
13.
				 echo "<option value='" . $gruppen_id . "'>" . $gruppen_name . "</option>"; 
14.
15.
		 
16.
		echo "</select></td>" 
17.
...
Nun möchte ich die getätigte Auswahl in die "Dokumente" Tabelle übergeben

01.
		$sqlab = "insert into text_dok (dok_id, dok_gruppe, dok_typ,) values (NULL," . $_POST["gruppen"] . "1)"; 
02.
                mysql_query($sqlab);
Hab es auch schon so versucht

01.
		$sqlab = "insert into text_dok (dok_id, dok_gruppe, dok_typ,) values (NULL," . $gruppen_id . "1)"; 
02.
                mysql_query($sqlab);
Leider steht in der Tabelle "Dokumente" nach dem Betätigen des Submit-Buttons immer die 5, also die zuletzt in die Tabelle eingetragene Gruppe.

Wie kann ich es anstellen, dass immer die ID der Auswahl in die Dokumente-Tabelle geschrieben wird?

Freue mich über jede Antwort.

Liebe Grüße

Tray
Mitglied: Arano
13.06.2011 um 22:52 Uhr
Nabend

mal ganz fix eben noch und dann ab ins Bett ;)

  1. $_POST["gruppen"] ist ein ARRAY !
  2. Ich denke in deinem INSERT-Query fehlt ein Komma und zwar bei den VALUES zwischen dem zweitem und drittem Wert.


Gute Nacht
~Arano
Bitte warten ..
Mitglied: EvilMoe
14.06.2011 um 01:48 Uhr
Davon mal abgesehen ist dein Script unsicher, Thema SQl Injection.
Bitte warten ..
Mitglied: tray-park
14.06.2011 um 07:45 Uhr
Hi,

Danke für die rasche Antwort. Die Tabelle hat noch ein paar mehr Felder, das Komma ist beim kopieren irgendwie unter gegangen. Im original Skript ist es vorhanden.

Und danke für den Tipp mit der SQL-Injenction. Da kümmere ich mich aber wann anders drum.
Bitte warten ..
Mitglied: Arano
14.06.2011 um 15:54 Uhr
Hallo Tray-Park

hast du es denn nun zum laufen bekommen oder klemmt es noch irgend wo !?


~Arano
Bitte warten ..
Mitglied: tray-park
14.06.2011 um 16:05 Uhr
Hi,

wie gesagt, das Komma fehlt im Original nicht. Nur eben hier im Thread.

Und was meinst du mit $_POST["gruppen"] ist ein ARRAY?

Stehe gerade etwas auf dem Schlauch. Was kann ich hier ändern, damit es funktioniert?
Bitte warten ..
Mitglied: 272909
14.06.2011 um 17:20 Uhr
Hallo,
01.
<? 
02.
if(!empty($_POST['gruppe'])) { 
03.
	$sql = "INSERT INTO text_dok (dok_gruppe, dok_typ) VALUES ('".$_POST['gruppe']."', 1)"; 
04.
	$do = mysql_query($sql); 
05.
06.
?> 
07.
<form action="" method="post"> 
08.
  <table> 
09.
    <tr> 
10.
      <td>Gruppe</td> 
11.
      <td><select name="gruppe"> 
12.
          	<? 
13.
	$sql = "SELECT gruppen_id, gruppen_name FROM gruppen"; 
14.
	$result = mysql_query($sql); 
15.
	if(mysql_num_rows($result) > 0) { 
16.
		do{ 
17.
			echo '<option value="'.$row['gruppen_id'].'">'.$row['gruppen_name'].'</option>'; 
18.
		}while($row = mysql_fetch_assoc($result)); 
19.
20.
	 
21.
		?> 
22.
        </select></td> 
23.
    </tr> 
24.
  </table> 
25.
</form>
Das sollte klappen. Du müsstest nur noch überlegen, ob du vielleicht doch lieber ein auto_increment in deiner Tabelle setzen möchtest, damit du das ständige NULL nicht schreiben musst. ;)
Bitte warten ..
Mitglied: tray-park
15.06.2011 um 20:19 Uhr
Hi,

die dok_id ist Primärschlüssel und auto_increment. Ich dachte nur, dass man trotzdem NULL schreiben muss. Hab ich aber nun weg gelassen.

Aber zum eigentlichen:

ES FUNKTIONIERT

Vielen Dank für die Hilfe.

Liebe Grüße

Tray
Bitte warten ..
Mitglied: EvilMoe
15.06.2011 um 20:23 Uhr
Ein Fehler ist im Script noch vorhanden von SQL Injection und XSS abgesehen.

Dort ist eine DO While Schleife. Die sollte gegen eine "normale" While ausgetauscht werden da wenn dein SQL Befehl nämlich 0 Resultate liefert warum auch immer würde wegen dem Do While Fehlermeldungen raus schmeißen weil die Variablen nicht gesetzt sind. Also lieber ne normale While verwenden.

EDIT: Sehe gerade das das vorher geprüft wird. Die IF könnte man entfernen und ne einfach While nehmen, spart ein wenig Schreibarbeit.
Bitte warten ..
Ähnliche Inhalte
PHP
PHP 5.3 nach PHP 5.6 portieren
Frage von nippon-tussiPHP5 Kommentare

Ich habe hier ein altes Projekt, das seit Jahren unter php 5.3 auf einem shared host bei all-inkl läuft. ...

Apache Server
Apache probleme nach update von php 5.3 Debian 6
gelöst Frage von cc-frauensteinApache Server10 Kommentare

Guten tag ich habe ei problem nach update von php 5.3 eines Debian 6 hier mal die Apache error. ...

VB for Applications
Auswahlliste mit variablen
Frage von 94451VB for Applications3 Kommentare

Hallo, ich möchte in VBA eine Liste generieren möchte hier aber nicht den Umweg über die Tabelle nehmen das ...

Webentwicklung
HTML - Auswahllisten mit Mehrfachauswahl ähnlich Checkbox?
gelöst Frage von mabue88Webentwicklung4 Kommentare

Hallo, gibt es eine HTML-Auswahlliste, deren Einträge wie eine Art Checkbox ausgewählt und wieder abgewählt werden können? Aktuell verwende ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 4 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 11 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 12 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 16 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1017 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...