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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
16.06.2016, 12:24:07
|
Anfänger
|
|
Registriert seit: Jun 2016
Alter: 26
Beiträge: 5
|
|
mysql speichert Dropdwons nicht
Es speichert ab Abteilung nicht mehr Abteilung, Vorgesetzter, Unternehmen und Standort sind Drop downs die ich in einzelne Tabellen gespeichert habe.
PHP-Code:
<html> <!-- Datensatz_speichern.php --> <?php //aktuelle Zeit hohlen $Jetzt = time(); $DatumAnzeige = date("d.m.Y", $Jetzt); echo $DatumAnzeige; // uebertragenden Daten auswerten $Vorname = $_POST["vorname"]; $Nachname = $_POST["nachname"]; $Position = $_POST["position"]; $Abteilung = $_POST["abteilung"]; $Vorgesetzter = $_POST["vorge"]; $Unternehmen = $_POST["unternehmen"]; $Standort = $_POST["standort"]; $Buero = $_POST["buero"]; $Eintritsdatum = $_POST["edatum"]; // Datum fuer mysql-Datenbank umformatieren $Eintritsdatum = date("Y-m-d", strtotime($Eintritsdatum));
//Neue Daten ausgeben echo "</br>".$Vorname."</br>"; echo "</br>".$Nachname."</br>"; echo "</br>".$Position."</br>"; echo "</br>".$Abteilung."</br>"; echo "</br>".$Vorgesetzter."</br>"; echo "</br>".$Unternehmen."</br>"; echo "</br>".$Standort."</br>"; echo "</br>".$Eintritsdatum."</br>"; echo "</br<".$Buero."</br>"; //Verbindung zur Datenbank erstellen $Verbindung = mysql_connect("localhost", "root"); mysql_select_db("db_ma_formular"); //sql-Befehl erstellen $tbl = "tbl_mitarbeiter"; //$sqlBefehl = "insert into ".$tbl."(Vorname, Nachname, Position, Abteilung, Vorgesetzter, Unternehmen, Standort, Buero, Eintritsdatum) values ('$Vorname', '$Nachname', '$Position', '$Abteilung', '$Vorgesetzter', '$Unternehmen', '$Standort', '$Buero', '$Eintritsdatum')"; $sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('$Vorname', '$Nachname', '$Position', '$Abteilung')"; $Ergebnis = mysql_query($sqlBefehl); if ($Ergebnis == 1) { echo "Daten erfolgreich gespeichert"; } else { echo "Daten nicht gespeichert"; } mysql_close($Verbindung); ?> </html>
|
16.06.2016, 12:55:40
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: mysql speichert Dropdwons nicht
Na du hast ja auch die Zeile "ausgeremmt", in der die Daten gespeichert werden.
falsch:
PHP-Code:
//$sqlBefehl = "insert into ".$tbl."(Vorname, Nachname, Position, Abteilung, Vorgesetzter, Unternehmen, Standort, Buero, Eintritsdatum) values ('$Vorname', '$Nachname', '$Position', '$Abteilung', '$Vorgesetzter', '$Unternehmen', '$Standort', '$Buero', '$Eintritsdatum')"; $sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('$Vorname', '$Nachname', '$Position', '$Abteilung')";
richtig:
PHP-Code:
$sqlBefehl = "insert into ".$tbl."(Vorname, Nachname, Position, Abteilung, Vorgesetzter, Unternehmen, Standort, Buero, Eintritsdatum) values ('$Vorname', '$Nachname', '$Position', '$Abteilung', '$Vorgesetzter', '$Unternehmen', '$Standort', '$Buero', '$Eintritsdatum')"; // $sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('$Vorname', '$Nachname', '$Position', '$Abteilung')";
Anmerkung meinerseits:
1. mysql ist veraltet, nutze mysqli oder PDO
2.
PHP-Code:
// $Jetzt = time(); // $DatumAnzeige = date("d.m.Y", $Jetzt); // echo $DatumAnzeige;
echo date("d.m.Y", time());
3. Warum setzt du nicht gleich die $_POST Variablen? und ganz wichtig!
4. http://us1.php.net/manual/de/functio...ape-string.php
PHP-Code:
$sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('".mysql_real_esc_string($_POST['vorname'])."', '".mysql_real_esc_string($_POST['nachname'].....;
PHP-Code:
<html> <!-- Datensatz_speichern.php --> <?php
5. was macht das html da vorne und am Ende?
6. Wenn ich dann schon dabei bin, mysql-Befehle GROSS schreiben also INSERT INTO....VALUES..... das macht das ganze leserlich ;-) .
7. Zwar reine Kosmetik, aber ich finde es wichtig.
PHP-Code:
echo "</br>".$Vorname."</br>"; da machst du es übersichtlich.
aber hier (man achte auf das Syntaxhighlight...)
PHP-Code:
$sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('$Vorname', '$Nachname', '$Position', '$Abteilung')"; $sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('".$Vorname."', '".$Nachname."', '".$Position."', '."$Abteilung."')";
PS
mysql_close() ist mittlerweile überflüssig, PHP schliesst die Verbindung automatisch.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Geändert von sysop (16.06.2016 um 13:07:47 Uhr)
|
16.06.2016, 15:17:48
|
Anfänger
|
|
Registriert seit: Jun 2016
Alter: 26
Beiträge: 5
|
|
AW: mysql speichert Dropdwons nicht
Benutze nich dirkt $_Post weil ich daten von einer Website aus eingabe und mit post übertrage
HTML-Code:
<form action = "speicher.php" method = "post">
<table>
<tr>
<td> Vorname </td>
<td>
<input type="text" size="25" name="vorname" />
</td>
</tr>
<tr>
<td> Nachname </td>
<td>
<input type="text" size="25" name="nachname" />
</td>
</tr>
<tr>
<td> Position </td>
<td>
<input type="text" size="25" name="position" />
</td>
</tr>
<tr>
<td> Abteilung </td>
<td>
<select name="abteilung" size="0">
<?php
for($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
echo "<option value".$Feld[$Index]["Abteilung_ID"].">".$Feld[$Index]["Abteilung"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td> Vorgesetzter </td>
<td>
<select name="vorge" size="0">
<?php
for($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
echo "<option value".$Feld3[$Index]["Vorgesetzter_ID"].">".$Feld3[$Index]["Vorgesetzter"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td> Unternehmen </td>
<td>
<select name="unternehmen" size="0">
<?php
for($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
echo "<option value".$Feld4[$Index]["Unternehmen_ID"].">".$Feld4[$Index]["Unternehmen"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td> Standort </td>
<td>
<select name="standort" size="0">
<?php
for($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
echo "<option value".$Feld2[$Index]["Standort_ID"].">".$Feld2[$Index]["Standort"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td> Büro </td>
<td>
<input type="text" size="25" name="buero" />
</td>
</tr>
<tr>
<td> Eintrittsdatum </td>
<td>
<input type="text" size="25" name="edatum" /> (tt.mm.jjjj)
</td>
</tr>
<td> </td>
<td>
<input type="submit" value="Speichern" />
<input type="reset" value="Abbrechen" />
</td>
</table>
</form>
die eingabe fuktioniert problemlos
Aber erst mal Danke
|
16.06.2016, 15:24:24
|
Anfänger
|
|
Registriert seit: Jun 2016
Alter: 26
Beiträge: 5
|
|
AW: mysql speichert Dropdwons nicht
aber hier (man achte auf das Syntaxhighlight...)
PHP-Code:
$sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('$Vorname', '$Nachname', '$Position', '$Abteilung')"; $sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('".$Vorname."', '".$Nachname."', '".$Position."', '."$Abteilung."')";
da bekomme ich nen error wenn ich das Probiere
und nein ich hatte das ober auskommentiert weil es nicht tat
//$sqlBefehl = "insert into ".$tbl."(Vorname, Nachname, Position, Abteilung, Vorgesetzter, Unternehmen, Standort, Buero, Eintritsdatum) values ('$Vorname', '$Nachname', '$Position', '$Abteilung', '$Vorgesetzter', '$Unternehmen', '$Standort', '$Buero', '$Eintritsdatum')";
$sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('$Vorname', '$Nachname', '$Position', '$Abteilung')";
und mit dem da drunter habe ich gemacht um zu erkennen wo der fehler beginnt und das Abteilung.
Geändert von Cason (16.06.2016 um 15:39:12 Uhr)
|
16.06.2016, 16:38:47
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: mysql speichert Dropdwons nicht
Zitat:
Zitat von Cason
aber hier (man achte auf das Syntaxhighlight...)
PHP-Code:
$sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('$Vorname', '$Nachname', '$Position', '$Abteilung')"; $sqlBefehl = "insert into ".$tbl."(Vorname,Nachname, Position, Abteilung) values ('".$Vorname."', '".$Nachname."', '".$Position."', '."$Abteilung."')";
da bekomme ich nen error wenn ich das Probiere
und mit dem da drunter habe ich gemacht um zu erkennen wo der fehler beginnt und das Abteilung.
|
Man sieht da recht schön (auf Grund des Systax-Highlights), dass ich den Punkt bei $Abteilung falsch gesetzt habe, deshalb auch meine Anregung.
Dein Formular nutzt mir in so fern nichts, da ich die Daten aus der Datenbank nicht zur Verfügung habe, ist aber für mein nächstes Vorhaben zunächst egal.
Ich schlage also erst einmal vor, die $_POST Variablen zu prüfen.
Dazu fügst nach folgendem Code das ein:
PHP-Code:
// uebertragenden Daten auswerten $Vorname = $_POST["vorname"]; $Nachname = $_POST["nachname"]; $Position = $_POST["position"]; $Abteilung = $_POST["abteilung"]; $Vorgesetzter = $_POST["vorge"]; $Unternehmen = $_POST["unternehmen"]; $Standort = $_POST["standort"]; $Buero = $_POST["buero"]; $Eintritsdatum = $_POST["edatum"];
// hier mein Zusatz: echo '<pre>'; print_r($_POST); echo '</pre>';
Wenn nicht alle Variablen befüllt sind, hast du dein Problem wohl schon gefunden.
Ist alles da, kannst du dein SQL-Querie eventuell so schreiben:
PHP-Code:
$sqlBefehl = " INSERT INTO `".$tbl."` ( `Vorname`, `Nachname`, `Position`, `Abteilung`, `Vorgesetzter`, `Unternehmen`, `Standort`, `Buero`, `Eintritsdatum` ) VALUES ( '".mysql_real_escape_string($_POST['vorname'])."', '".mysql_real_escape_string($_POST['nachname'])."', '".mysql_real_escape_string($_POST['position'])."', '".mysql_real_escape_string($_POST['abteilung'])."', '".mysql_real_escape_string($_POST['vorge'])."', '".mysql_real_escape_string($_POST['unternehmen'])."', '".mysql_real_escape_string($_POST['standort'])."', '".mysql_real_escape_string($_POST['buero'])."', '".$Eintritsdatum."' )";
In einer Testtabelle hier hat das Problemlos funktioniert.
PS
Sind die Feldnamen deiner Tabelle wirklich am Anfang Grossbuchstaben? Auch dass ist wichtig und Fehlerquelle.
mysql_error() gibt Fehler aus.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Geändert von sysop (16.06.2016 um 16:48:52 Uhr)
|
17.06.2016, 08:54:23
|
Anfänger
|
|
Registriert seit: Jun 2016
Alter: 26
Beiträge: 5
|
|
AW: mysql speichert Dropdwons nicht
tbl_abteilung
Abteilung_ID :1:2:3:4
Abteilung :Marketing:Holding:Einkauf:Verwaltung:
tbl_mitarbeiter
Mitarbeter_ID
Vorname
Nachname
Abteilung_Nr
zwischen Abteilung_ID und Abteilung_Nr besteht eine beziehung
und im dropdown steht Marketing usw.
ich möchte aber das die dazugehörige Abteilung_ID als Abteilung_Nr in tbl-Mitarbeiter gespeichert wird.
Das beschreibt mein Problem besser.
Die Variablen sind befüllt habe ich getestet.
Danke weiterhin für deine Hilfe
Gruß
Cason
|
17.06.2016, 11:30:35
|
Member
|
|
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
|
|
AW: mysql speichert Dropdwons nicht
Hallo
Ich sage es nur ungern, aber das von mir gepostete Query funktioniert bei mir fehlerfrei, sofern alle Variablen auch belegt sind. Ich habe mir ein entsprechendes Formular gebastelt und alle Daten befüllt und abgeschickt, alles landet da, wo es hin soll.
Dein Problem, dass ab Abteilung nichts gespeichert wird kommt also offensichtlich vom Formular (leere Einträge o.Ä.). Ich kenne weder die Tabelle noch die Abfrage, die deine Dropdown-Felder befüllt, was für mich den Code deines Formulars natürlich undurchsichtig macht.
Wenn alle Daten aus dem Formular vorhanden sind, ist der Rest (wohin, sprich in welches Feld du dann die Einträge speicherst) nur noch ein Umschaufeln der Variablen.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
|
17.06.2016, 13:02:12
|
Anfänger
|
|
Registriert seit: Jun 2016
Alter: 26
Beiträge: 5
|
|
AW: mysql speichert Dropdwons nicht
Hier mein formular quelltext
HTML-Code:
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 STRICT//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml-strict.dtd">
<html xmlns= "http://w3.org/1999/xhtml" lang ="de">
<?php
//Datenverbindung
$Verbindung = mysql_connect ("localhost", "root");
mysql_select_db("mitarbeiterformular");
//Abteilung Feld
$Resultat = mysql_query("select * from tbl_abteilung");
$DatenSatzAnzahl = mysql_num_rows ($Resultat);
for ($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
$Datensatz = mysql_fetch_assoc($Resultat);
$Feld[$Index]["Abteilung_ID"]= $Datensatz["Abteilung_ID"];
$Feld[$Index]["Abteilung"]= $Datensatz["Abteilung"];
}
//Standort Feld2
$Resultat2 = mysql_query("select * from tbl_standort");
$DatenSatzAnzahl2 = mysql_num_rows ($Resultat2);
for ($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
$Datensatz2 = mysql_fetch_assoc($Resultat2);
$Feld2[$Index]["Standort_ID"]= $Datensatz2["Standort_ID"];
$Feld2[$Index]["Standort"]= $Datensatz2["Standort"];
}
//Vorgesetzter Feld3
$Resultat3 = mysql_query("select * from tbl_vorgesetzter");
$DatenSatzAnzahl3 = mysql_num_rows ($Resultat3);
for ($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
$Datensatz3 = mysql_fetch_assoc($Resultat3);
$Feld3[$Index]["Vorgesetzter_ID"]= $Datensatz3["Vorgesetzter_ID"];
$Feld3[$Index]["Vorgesetzter"]= $Datensatz3["Vorgesetzter"];
}
//Unternehmen Feld4
$Resultat4 = mysql_query("select * from tbl_unternehmen");
$DatenSatzAnzahl4 = mysql_num_rows ($Resultat4);
for ($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
$Datensatz4 = mysql_fetch_assoc($Resultat4);
$Feld4[$Index]["Unternehmen_ID"]= $Datensatz4["Unternehmen_ID"];
$Feld4[$Index]["Unternehmen"]= $Datensatz4["Unternehmen"];
}
//Monitor Feld5
$Resultat5 = mysql_query("select * from tbl_monitor");
$DatenSatzAnzahl5 = mysql_num_rows ($Resultat5);
for ($Index=0; $Index < $DatenSatzAnzahl5; $Index++)
{
$Datensatz5 = mysql_fetch_assoc($Resultat5);
$Feld5[$Index]["Monitor_ID"]= $Datensatz5["Monitor_ID"];
$Feld5[$Index]["Monitor"]= $Datensatz5["Monitor"];
}
mysql_close($Verbindung);
?>
<head>
<title>Mitarbeiterformular</title>
<meta http-equiv="Content-type" content="text/html; CHARSET=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/basic.css" media="screen" />
<style type="text/css">
body
{
font-size: 85%;
font-family: "Verdana, Arial, Sans-Serif"
text-align: left;
background-color: #fff;
}
#wrap
{
width: 760px;
margin: 0 auto;
text-alighn: left;
}
#kopf
{
width: 760px;
height: 145px;
font-size: 25px ;
text-align: right;
background-color: #fff;
/*
border-top: 2px solid #999;
border-bottem: 2px solid #999;
border-right: 2px solid #999;
border-left: 2px solid #999;
*/
}
#kopf-1
{
text-align: center;
width: 760px;
height: 60px;
border-top: 1px solid #fff;
border-left: 1px solid #fff;
border-right: 1px solid #fff;
}
#inhalt1
{
float: left;
height: 100%;
width: 760px;
background-color: #fff;
border-top: 2px solid #999;
border-right: 2px solid #999;
border-left: 2px solid #999;
border-bottem: 2px solid #999;
}
#inhalt
{
float: left;
height: 400px;
width: 764px;
background-color: #fff;
border-top: 2px solid #999;
/* border-right: 1px solid #999;
border-left: 1px solid #999; */
}
h2
{
text-align: center;
}
h3, h4, h5
{
margin: 12px;
color: black;
text-align: center;
}
h1
{
front-size: 220%;
margin: 20px;
text-align: center;
color: black;
}
h6
{
margin: 11px;
color: black;
}
p.dashed
{border-style: dashed;
margin: 15px 20px;
}
a:link
{
}
a:hover, a:active, a:focus
{
color: #00ff00;
text-decoration: none;
}
#navigation ul li
{
display: inline;
list-style-type: none;
margin: 20px;
}
#fusszeile
{
border-top: 2px solid black;
}
</style>
<body>
<div id="wrap">
<div id="kopf" >
<!-- Eine Ueberschrift oder Logo fuer die Webseite -->
<a href ="https://www.deutsche-glasfaser.de" title="Srart">
<div align="center"> <img src="deutsche-glasfaser_b.svg" alt="Logo"> </div> </a>
</div> <!-- Ende von Kopf -->
<div id="kopf-1">
<h1> Mitarbeiterformular </h1>
<h2> Personelle Daten </h2>
<h3> ◄ Für die Personalabteilung ► </h3>
</div> <!-- ende des Kopf-1 -->
<div id="inhalt1">
<!-- Beginn des Inhalteinss -->
</br> </br> </br> </br> </br>
<form action = "speicher.php" method = "post">
<table>
<tr>
<td> Vorname </td>
<td>
<input type="text" size="25" name="vorname" />
</td>
</tr>
<tr>
<td> Nachname </td>
<td>
<input type="text" size="25" name="nachname" />
</td>
</tr>
<tr>
<td> Position </td>
<td>
<input type="text" size="25" name="position" />
</td>
</tr>
<tr>
<td> Abteilung </td>
<td>
<select name="abteilung" size="0">
<?php
for($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
echo "<option value".$Feld[$Index]["Abteilung_ID"].">".$Feld[$Index]["Abteilung"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td> Vorgesetzter </td>
<td>
<select name="vorge" size="0">
<?php
for($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
echo "<option value".$Feld3[$Index]["Vorgesetzter_ID"].">".$Feld3[$Index]["Vorgesetzter"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td> Unternehmen </td>
<td>
<select name="unternehmen" size="0">
<?php
for($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
echo "<option value".$Feld4[$Index]["Unternehmen_ID"].">".$Feld4[$Index]["Unternehmen"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td> Standort </td>
<td>
<select name="standort" size="0">
<?php
for($Index=0; $Index < $DatenSatzAnzahl; $Index++)
{
echo "<option value".$Feld2[$Index]["Standort_ID"].">".$Feld2[$Index]["Standort"]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td> Büro </td>
<td>
<input type="text" size="25" name="buero" />
</td>
</tr>
<tr>
<td> Eintrittsdatum </td>
<td>
<input type="text" size="25" name="edatum" /> (tt.mm.jjjj)
</td>
</tr>
<td> </td>
<td>
<input type="submit" value="Speichern" />
<input type="reset" value="Abbrechen" />
</td>
</table>
</form>
</br>
</div> <!-- ende des Inhalt1 -->
</body>
</html>
ich weiß ich bin eine "einrückschlampe" und ich mache es wahrscheinlich auch bisschen umständlich. Trozdem denke ich das du das verstehst.
mit freundlichem gruß
Cason
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:55:58 Uhr.
|