SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQL/MySQLi

MySQL/MySQLi Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL/MySQLi diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.01.2010, 16:25:53
ThinkFlou ThinkFlou ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 33
Beiträge: 16
Dropdown Auswahl wird nicht an DB übergeben

Hallo Forumser,

Mein PHP Formular gibt die Daten (Vor- und Nachname) soweit korrekt an meine MySQL DB weiter.
Nun habe ich aber ein Dropdown Menü für das Geschlecht (m oder w) hinzugefügt (rot markierter Code-Schnippsel). Daraufhin wurde nur das Standardmäßig ausgewählte Geschlecht (m) übergeben, Vor- und Nachname gingen leider nicht mit in die Datenbank ein.

Ich habe die Übergabe des Dropdown Menüs mit einer Schleife (im Code rot markiert) realisiert, ich schätze hier liegt der Fehler. (Ohne den rot markierten Codeschnipsel werden Vor- und Nachname korrekt übergeben)

Im Dropdown Menü "Geschlecht" hat der Name "m" hat den Wert 0 und der Name "w" hat im Formular den Wert 1.

Kann mir jemand einen Tipp geben, was ich verändern muss, damit eins der beiden Werte aus dem Dropdown Menü an die DB mit übergeben werden ?

Die meisten Dropdown Threads hier beziehen sich ja auf die Übergabe von DB an das Dropwon Menü, da bin ich nicht mit weiter gekommen :-|

Ich danke schonmal für die Mühe bis hier hin gelesen zu haben :)

Gruß
Flo


Code:
<?php

$db_host = "localhost";
$db_user = "****";
$db_pass = "*****";
$db_name = "***";
$tabelle = "Tabelle";

if (isset( $_POST['senden'] ))
{

	$_POST = get_magic_quotes_gpc() ? array_map( 'stripslashes', $_POST ) : $_POST;

	$Name = $_POST['Name'];
	$Vorname = $_POST['Vorname'];
	$Geschlecht = $_POST['Geschlecht'];
		
	$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank wurde nicht erreicht!" );
	if ($conID)
	{
		mysql_select_db( $db_name, $conID );
	}
	
	$sql = "INSERT INTO `Tabelle`
                        (`Name`, `Vorname`)
			VALUES(
				'" .mysql_real_escape_string( $Name ). "',
				'" .mysql_real_escape_string( $Vorname ). "'
	                  )";

    mysql_query( $sq1 );



if($Geschlecht == 0) {
        $sq2 = "INSERT INTO `Tabelle` (`Geschlecht`) VALUES ('m')";
    }
else {
        $sq2 = "INSERT INTO `Tabelle` (`Geschlecht`) VALUES ('w')";
    }

    mysql_query( $sq2 );



	if (mysql_affected_rows() == 1)
	{
		echo "Der Datensatz wurde hinzugefügt!";
		
	}
	else
	{
		echo "Der Datensatz konnte nicht hinzugefügt werden!";
		
	}
}

?>
Mit Zitat antworten
  #2  
Alt 06.01.2010, 16:33:31
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.681
AW: Dropdown Auswahl wird nicht an DB übergeben

wozu gibt's hier wohl ein unterforum MYSQL...?

[mod: verschoben]
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 06.01.2010, 16:36:54
ThinkFlou ThinkFlou ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 33
Beiträge: 16
AW: Dropdown Auswahl wird nicht an DB übergeben

Zitat:
Zitat von vt1816 Beitrag anzeigen
wozu gibt's hier wohl ein unterforum MYSQL...?

[mod: verschoben]
Hatte es nicht als "Unterforum" angesehen.
Ich bitte um Entschuldigung und gelobe Besserung.
*sorry*
Mit Zitat antworten
  #4  
Alt 06.01.2010, 16:43:29
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.681
AW: Dropdown Auswahl wird nicht an DB übergeben

Zitat:
Zitat von ThinkFlou Beitrag anzeigen
[...]
Kann mir jemand einen Tipp geben, was ich verändern muss, damit eins der beiden Werte aus dem Dropdown Menü an die DB mit übergeben werden ?
Tipp:

PHP-Code:
...
if(
$_POST['Geschlecht'] == 0)
{
  
$Geschlecht 'm';
}
else
{
  
$Geschlecht 'w';
}

$sql "INSERT INTO `Tabelle` (`Name`, `Vorname`, `Geschlecht`)
        VALUES(
            '" 
.mysql_real_escape_string$_POST['Name']). "',
            '" 
.mysql_real_escape_string$_POST['Vorname'] ."',
            '" 
.$Geschlecht ."' )";

mysql_query$sql ) or die(mysql_error());
... 
** ungetestet!! **
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5  
Alt 06.01.2010, 16:47:29
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 53
Beiträge: 1.044
AW: Dropdown Auswahl wird nicht an DB übergeben

Nun eigentlich recht einfach zu erklären dein Problem. Dein INSERT nach dem IF fügt ja auch nur das Geschlecht per INSERT ein. Vor dem IF hast du ein INSERT mit den anderen POST-Daten.
PHP-Code:
if($Geschlecht == 0) {
$sql "INSERT INTO `Tabelle`
                        (`Name`, `Vorname`,`Geschlecht`)
            VALUES(
                '" 
.mysql_real_escape_string$Name ). "',
                '" 
.mysql_real_escape_string$Vorname ). "','m'
                      )"
;
} else {
$sql "INSERT INTO `Tabelle`
                        (`Name`, `Vorname`,`Geschlecht`)
            VALUES(
                '" 
.mysql_real_escape_string$Name ). "',
                '" 
.mysql_real_escape_string$Vorname ). "','w'
                      )"
;

So wird dir je nach Geschlecht gleich der gesamte Datensatz eingetragen.
Einfacher wäre es aber zu lösen, wenn du dir dein Formular gleich richtig erstellst. Besser gesagt dem Select die korrekten Daten übergibst.
HTML-Code:
<select name="Geschlecht" size="1">
 <option value="m">Männlich</option>
 <option value="w">Weiblich</option>
</select>
So wird dir gleich "m" oder "w" in POST übergeben. Musst du halt nur noch eine Prüfung setzen, daß auch wirklich nur diese Werte übergeben wurden.

Geändert von urvater (06.01.2010 um 16:49:33 Uhr) Grund: kopierfehler entfernt: m gegen w getauscht
Mit Zitat antworten
  #6  
Alt 06.01.2010, 17:07:27
ThinkFlou ThinkFlou ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 33
Beiträge: 16
AW: Dropdown Auswahl wird nicht an DB übergeben

@ vt1816:
Dein Tipp leider funktioniert nicht, der Datensatz konnte nicht hinzugefügt werden :(

@ urvater:

Ich habe alles so wie du sagtest umgesetzt, leider konnte auch hier der Datensatz nicht hinzugefügt werden.

Ist es oben bei der Variablen Deklaration denn richtig mit:
Code:
$Geschlecht = $_POST['Geschlecht'];

Zitat:
Zitat von urvater Beitrag anzeigen
Einfacher wäre es aber zu lösen, wenn du dir dein Formular gleich richtig erstellst. Besser gesagt dem Select die korrekten Daten übergibst.
[...]
So wird dir gleich "m" oder "w" in POST übergeben. Musst du halt nur noch eine Prüfung setzen, daß auch wirklich nur diese Werte übergeben wurden.
Die Werte habe ich nun von 0 und 1 in "m" und "w" geändert.
Also muss bei der IF-Schleife das dort auch geändert werden, ich weiß nur nicht von welcher Prüfung du sprichst und was diese Änderung an meinem Problem "ändert" :)

Danke schonmal für eure beiden Tipps.

Gruß
Flo
Mit Zitat antworten
  #7  
Alt 06.01.2010, 17:10:27
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.681
AW: Dropdown Auswahl wird nicht an DB übergeben

Zitat:
Zitat von ThinkFlou Beitrag anzeigen
@ vt1816:
Dein Tipp leider funktioniert nicht, der Datensatz konnte nicht hinzugefügt werden :(
Fehlermeldung(en)? Code Deines Formulars?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8  
Alt 06.01.2010, 17:12:30
ThinkFlou ThinkFlou ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 33
Beiträge: 16
AW: Dropdown Auswahl wird nicht an DB übergeben

Zitat:
Zitat von vt1816 Beitrag anzeigen
Fehlermeldung(en)?
Naja, das
Code:
(mysql_affected_rows() == 1)
sagt mir, dass nichts in die Datenbank hinzugefügt wurde. Wie ich an weitere Fehlermeldungen komme weiß ich momentan nicht :-|


Der Quellcode des HTML Formulars wird mit NetObjekt Fusions generiert, also nicht gerade passend hier hin geschrieben zu werden.
Das PHP Script hab ich ja schon gepostet.
Mit Zitat antworten
  #9  
Alt 06.01.2010, 17:29:25
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 53
Beiträge: 1.044
AW: Dropdown Auswahl wird nicht an DB übergeben

Zitat:
Zitat von ThinkFlou Beitrag anzeigen
Die Werte habe ich nun von 0 und 1 in "m" und "w" geändert.
Also muss bei der IF-Schleife das dort auch geändert werden, ich weiß nur nicht von welcher Prüfung du sprichst und was diese Änderung an meinem Problem "ändert" :)
Meine Prüfung bezieht sich auf die Werte in SELECT, die per POST übergeben werden. Da diese manipuliert werden können müssen sie geprüft werden.
Ich hab mal ne kleine Seite erstellt in der ein Form drin ist, welche auch funktioniert. Mit den INSERT wurde ja alles erklärt. Denke ich zumindest.
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Teste mal POST Daten</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" name="personen">
Nachname: <input type="text" size="20" name="Name"> <br>
Vorname: <input type="text" name="Vorname"><br>
Geschlecht: <select name="Geschlecht" size="1">
 <option value="0">Bitte wählen</option>
 <option value="m">Männlich</option>
 <option value="w">Weiblich</option>
</select>
<input type="submit" value="Senden" name="Senden">
</form>
<?php
if(isset($_POST['Senden'])) {
    
/*Nur eingefügt, damit man sieht was übergeben wird*/
    
echo '<pre>';
    
print_r($_POST);
    echo 
'</pre>';
    
/*ende der Testanzeige*/
    
$Geschlecht $_POST['Geschlecht'];
    
$PruefGesch = array('m','w');
    if(
in_array($Geschlecht,$PruefGesch)) {
        echo 
'Geschlecht wurde mit '.$Geschlecht.' übergeben';
    } else {
        echo 
'Fehlerbehandlung setzen, da Geschlecht nicht oder falsch übergeben wurde';
    }
}
?>


</body>
</html>
Mit Zitat antworten
  #10  
Alt 06.01.2010, 17:37:15
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 53
Beiträge: 1.044
AW: Dropdown Auswahl wird nicht an DB übergeben

Zitat:
Zitat von ThinkFlou Beitrag anzeigen
Ist es oben bei der Variablen Deklaration denn richtig mit:
Code:
$Geschlecht = $_POST['Geschlecht'];
Wenn der SELECT im Formular auch als Namen "Geschlecht" hat, dann ja ansonsten nein.

PS: So wie ich es sehe müsste das Beispiel von vt1816 funktionieren. Ist eigentlich genau das gleiche was ich umgesetzt habe nur mit einer optisch schöneneren und einfacher zu pflegenden Umsetzung.
Mit Zitat antworten
Antwort

Stichworte
datenbank, dropdown, mysql, php


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
dropdown zeigt db Inhalt nicht an rene.noob PHP Grundlagen 12 27.06.2009 11:49:55
JavaScript: Dynamisches Form - PHP: An DB übergeben Zentral PHP für Fortgeschrittene und Experten 2 12.07.2008 19:36:40
2 Variable mit einem Dropdown an MySQL übergeben wa32 PHP für Fortgeschrittene und Experten 3 09.04.2006 19:29:05
Suchergebnis durch Auswahl von Dropdowon1 und Dropdowon2 anzeigen shinbo-san MySQL/MySQLi 13 26.01.2005 12:12:49
dropdown auswahl in formular prüfen Phil HTML, CSS und JavaScript Help! 2 25.09.2003 21:10:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:12:57 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.


© 2001-2021 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt