Login  Regeln Aktuelles Datum und Uhrzeit: 21.11.2008, 18:03  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
Problem mit Daten in die Datenbank hinzufügen...
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Serverseitige Websprachen
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
xxcool25xx
Erfahrener [User]
Erfahrener



Anmeldung: 16.02.07
Beiträge: 50
Wohnort: ganz im Sü ...

BeitragVerfasst am: 29.08.2008, 12:42    Titel: Problem mit Daten in die Datenbank hinzufügen... Antworten mit Zitat

Hallo an alle, habe da folgendes Problem,

ich habe mir einen Script gebastelt um die Daten in die Datenbank zu laden, fürs erste funktioniert der auch einwandfrei, die Daten werden hinzugefügt. Jetzt möchte ich vermeiden, dass Eingabefelder beim Senden leer sind, wie mache ich das am besten, dann möchte ich, dass wenn die Daten erfolgreich hizugefügt werden, dass dann eine Meldung kommt, wenn alles ok ist, dann "Alle Daten wurden erfolgreich übertragen" und wenn was falsch ist dann "Es ist ein fehler aufgetreten", kann mir da vielleicht einer weiterhelfen.

Hier der Script:
Code:

<?php   
   /*Variablen zum Einfügen der Daten in die Datenbank*/
   $head      =   $_POST["head"];
   $url      =   $_POST["url"];
   $descript   =   $_POST["descript"];
   $username   =   $_POST["username"];
   $password   =   $_POST["password"];
   
   //Verbindung zu der Datenbank   
   mysql_connect ("localhost","xxxxxxx","xxxxxx") or die ("Keine Verbindung möglich!");
   mysql_select_db ("my_links") or die ("Die Datenbank existiert nicht!");
   
   /*Script zum Kommunizieren mit der Datenbank*/
   $eintrag   =   "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
   
   //Variable zum Eintrag der Daten in die Datenbank
   $eintragen   =   mysql_query($eintrag) or die (mysql_error());
   
   $error = 0;     /* ich setzte die Variable $error auf 0 - bei größeren Scripten später könnte es ja sein, dass die Variable noch einen Wert trägt */

   if($_POST['head'] == "") $error = 1;     /* falls in "head" nichts eingegeben wurde wird error = 1 gesetzt. */
   if($_POST['url'] == "") $error = 1;   
   if($_POST['username'] == "") $error = 1;   
   if($_POST['password'] == "") $error = 1;   

   if($error == 0)
      {   
           echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
      }
   else
      {     /* else... */
           echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
      }
   
?>
<html>
<head>
<style type="text/css">
.content
   {
      vertical-align: top;
      text-align: left;
      padding-left:10px;
      font-family:arial;
      width: 200px;
   }
.fields
   {
      font-family:arial;
      width:300px;
   }
.button
   {
      font-family:arial;
      width:150px;
      text-align:center;
      background-color:blue;
      font-weight:600;
      color:white;
      margin-top:30px;
   }
</style>
</head>
<body>
<table>
   <tr>
   <form action="<?php echo $_POST["PHP_SELF"]; ?>" method="post">
      <td class="content">Bezeichnung</td>
      <td><input value="" class="fields" name="head" type="text"></td>
   </tr>
   <tr>
      <td class="content">Website URL</td>
      <td><input value="" class="fields" name="url"></td>
   </tr>
   <tr>
      <td class="content">Beschreibung</td>
      <td><textarea cols="50" rows="10" name="descript"></textarea></td>
   </tr>
   <tr>
      <td class="content">Username</td>
      <td><input value="" class="fields" name="username" type="text"></td>
   </tr>
   <tr>
      <td class="content">Passwort</td>
      <td><input value="" class="fields" name="password" type="text"></td>
   </tr>
   <tr>
      <td><input type="submit" value="Daten senden" class="button" name="SUBMIT"></td>
      <td><input type="reset" value="Daten löschen" class="button"></td>
   </tr>
   </form>
</table>         
</body>
</html>



Danke schon mal im voraus.

Gruß
Konstantin


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
maudim02
Helfer [User]
Helfer



Anmeldung: 30.09.06
Beiträge: 158

BeitragVerfasst am: 29.08.2008, 13:19    Titel: Antworten mit Zitat

das einfügen in die datenbank solltest du schon NACH der errorabfrage machen...
bringt ja nix wenn du die daten so wie sie sind zuerst in die DB schreibst und danach auf Fehler überprüfst...

und bei der Fehlerüberprüfung vielleicht nicht schreiben
Code:
if($_POST['head'])...
sondern gleich die variablen verwenden die du am anfang hattest....

Also im klartext: Smilie
Code:

<?php   
   /*Variablen zum Einfügen der Daten in die Datenbank*/
   $head      =   $_POST["head"];
   $url      =   $_POST["url"];
   $descript   =   $_POST["descript"];
   $username   =   $_POST["username"];
   $password   =   $_POST["password"];
   
   //Verbindung zu der Datenbank   
   mysql_connect ("localhost","xxxxxxx","xxxxxx") or die ("Keine Verbindung möglich!");
   mysql_select_db ("my_links") or die ("Die Datenbank existiert nicht!");
   
   /*Script zum Kommunizieren mit der Datenbank*/
   $eintrag   =   "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
   
   $error = 0;     /* ich setzte die Variable $error auf 0 - bei größeren Scripten später könnte es ja sein, dass die Variable noch einen Wert trägt */

   if(strlen($head) <1) $error = 1;     /* falls in "head" nichts eingegeben wurde wird error = 1 gesetzt. */
   if(strlen($url) < 1) $error = 1;   
   if(strlen($username) < 1 ) $error = 1;   
   if(strlen($password)<1) $error = 1;   

   if($error == 0)
      {   
            //Variable zum Eintrag der Daten in die Datenbank
           $eintragen   =   mysql_query($eintrag) or die (mysql_error());
           echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
      }
   else
      {     /* else... */
           echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
      }
   
?>


Nach oben
Private Nachricht senden
xxcool25xx
Erfahrener [User]
Erfahrener



Anmeldung: 16.02.07
Beiträge: 50
Wohnort: ganz im Sü ...

BeitragVerfasst am: 29.08.2008, 16:01    Titel: Antworten mit Zitat

Ok Danke schon mal, werde ich heute audprobieren...

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
xxcool25xx
Erfahrener [User]
Erfahrener



Anmeldung: 16.02.07
Beiträge: 50
Wohnort: ganz im Sü ...

BeitragVerfasst am: 29.08.2008, 17:09    Titel: Antworten mit Zitat

habe das jetzt ausprobiert, das funktioniert soweit auch, das was mich jetzt noch stört, ist das, wenn ich die Datei ausführe steht oben über meinem Formular schon gleich die "else" Fehlermeldung, und wenn die Daten übertragen worden sind, dann steht über dem Formular die "if" Meldung, wie kann ich das vermeiden, ich möchte eigentlich nur ein Formular starten und dann meine Daten eintragen und dann wenn die eingabe erfolgreich ist ein extra Fenter, wo dann die "if" Meldung kommt. oder eben wenn daten falsch waren, die "else" Meldung.

[/img]


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
placido
Helfer [User]
Helfer



Anmeldung: 16.10.07
Beiträge: 194

BeitragVerfasst am: 29.08.2008, 17:23    Titel: Antworten mit Zitat

noch eine schleife die überprüft ob alle felder leer sind. falls ja nichts anzeigen
_________________
Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele


Nach oben
Private Nachricht senden
xxcool25xx
Erfahrener [User]
Erfahrener



Anmeldung: 16.02.07
Beiträge: 50
Wohnort: ganz im Sü ...

BeitragVerfasst am: 29.08.2008, 18:00    Titel: Antworten mit Zitat

nee das hat jetzt nicht funktioniert, wie soll ich diese Schleife am Besten einbauen???

Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
placido
Helfer [User]
Helfer



Anmeldung: 16.10.07
Beiträge: 194

BeitragVerfasst am: 29.08.2008, 18:03    Titel: Antworten mit Zitat

if alle felder leer
{ formular }
else
{überprüfung formular }

_________________
Relativitätstheorie:
Wenn ich Dir einen Finger ins Auge stecke, haben wir beide einen Finger im Auge, aber ich bin relativ besser dran
Browserspiele


Nach oben
Private Nachricht senden
maudim02
Helfer [User]
Helfer



Anmeldung: 30.09.06
Beiträge: 158

BeitragVerfasst am: 29.08.2008, 21:35    Titel: Antworten mit Zitat

ich würds so machen:

Code:

if ($_POST['SUBMIT'])
{
  fehlerüberprüfung + daten in DB schreiben...
}
else
{
 formular anzeigen..
}


Und noch was: Die If-Anweisung ist KEINE Schleife Auf den Arm nehmen


Nach oben
Private Nachricht senden
xxcool25xx
Erfahrener [User]
Erfahrener



Anmeldung: 16.02.07
Beiträge: 50
Wohnort: ganz im Sü ...

BeitragVerfasst am: 29.08.2008, 22:24    Titel: Antworten mit Zitat

ich weis nicht es will einfach nicht klappen.

mein Skript sieht jetzt so aus und es kallpt immer noch nicht.

ich möchte das vor der eingabe nur die Formularfelder da stehen und nach der eingabe eine andere seite aufgeht in dieser steht, Ihre daten wurden eingetragen und dann kann ich diese wieder auf die Startseite umleiten z. BS.
Code:
<?php
   /*Variablen zum Einfügen der Daten in die Datenbank*/
   $head       =   $_POST["head"];
   $url        =   $_POST["url"];
   $descript   =   $_POST["descript"];
   $username   =   $_POST["username"];
   $password   =   $_POST["password"];
   /*Verbindung zu der Datenbank*/
   mysql_connect ("localhost","xxx","xxxxx") or die ("Keine Verbindung möglich!");
   mysql_select_db ("xxxxxx") or die ("Die Datenbank existiert nicht!");
   /*Script zum Kommunizieren mit der Datenbank*/
   $eintrag   =   "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
   
?>


<html>
<head>
<link href="content.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<form action='<?php echo $_POST["PHP_SELF"]; ?>' method='post'>
<?php
   //Überprüfung der Formulare auf Inhalt
   $formular   =   "no";
   
   if(strlen($head) >1) $error = 1;
   if(strlen($url)  >1) $error = 1;
   if(strlen($username)  >1) $error = 1;
   if(strlen($password) >1) $error = 1;

   if($formular   == "no")
      {
         echo "
<table>
   <tr>
   
      <td class='content'>Bezeichnung</td>
      <td><input value='' class='fields' name='head' type='text'></td>
   </tr>
   <tr>
      <td class='content'>Website URL</td>
      <td><input value='' class='fields' name='url'></td>
   </tr>
   <tr>
      <td class='content''>Beschreibung</td>
      <td><textarea cols='50' rows='10' name='descript' class='fields'></textarea></td>
   </tr>
   <tr>
      <td class='content'>Username</td>
      <td><input value='aaaa' class='fields' name='username' type='text'></td>
   </tr>
   <tr>
      <td class='content'>Passwort</td>
      <td><input value='' class='fields' name='password' type='text'></td>
   </tr>
   <tr>
      <td><input type='submit' value='Daten senden' class='button' name='SUBMIT'></td>
      <td><input type='reset' value='Daten löschen' class='button'></td>
   </tr>   
</table>";
   
      }
   else
      {
         echo "Ein Fehler ist aufgetreten!!!";
      }   
?>
<?php   
   //Fehlermeldung bei nicht komplett ausgefühlten Formularen
   $error = "fields";

   if(empty($head)) $error = 1;
   if(empty($url)) $error = 1;
   if(empty($username)) $error = 1;
   if(empty($password)) $error = 1;

   if($error == "fields")
      {
         //Variable zum Eintrag der Daten in die Datenbank
           $eintragen   =   mysql_query($eintrag) or die (mysql_error());
           echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
      }
   else
      {   
           echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
      }
?>
   </form>
</body>
</html>


bin echt schon am verzweifeln...


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
maudim02
Helfer [User]
Helfer



Anmeldung: 30.09.06
Beiträge: 158

BeitragVerfasst am: 30.08.2008, 09:32    Titel: Antworten mit Zitat

Code:
<?php
   /*Variablen zum Einfügen der Daten in die Datenbank*/
   $head       =   $_POST["head"];
   $url        =   $_POST["url"];
   $descript   =   $_POST["descript"];
   $username   =   $_POST["username"];
   $password   =   $_POST["password"];
   /*Verbindung zu der Datenbank*/
   mysql_connect ("localhost","xxx","xxxxx") or die ("Keine Verbindung möglich!");
   mysql_select_db ("xxxxxx") or die ("Die Datenbank existiert nicht!");
   /*Script zum Kommunizieren mit der Datenbank*/
   $eintrag   =   "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
   
?>


<html>
<head>
<link href="content.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<form action='<?php echo $_POST['PHP_SELF']; ?>' method='post'>
<?php
   

   if(!($_POST['ok']))
      {
         echo "
<table>
   <tr>
   
      <td class='content'>Bezeichnung</td>
      <td><input value='' class='fields' name='head' type='text'></td>
   </tr>
   <tr>
      <td class='content'>Website URL</td>
      <td><input value='' class='fields' name='url'></td>
   </tr>
   <tr>
      <td class='content''>Beschreibung</td>
      <td><textarea cols='50' rows='10' name='descript' class='fields'></textarea></td>
   </tr>
   <tr>
      <td class='content'>Username</td>
      <td><input value='aaaa' class='fields' name='username' type='text'></td>
   </tr>
   <tr>
      <td class='content'>Passwort</td>
      <td><input value='' class='fields' name='password' type='text'></td>
   </tr>
   <tr>
      <td><input type='submit' value='Daten senden' class='button' name='ok'></td>
      <td><input type='reset' value='Daten löschen' class='button'></td>
   </tr>   
</table>";
   
      }
   else if($_POST['ok'])
      {
                  if(strlen($head) >1) $error = 1;
                  if(strlen($url)  >1) $error = 1;
                  if(strlen($username)  >1) $error = 1;
                  if(strlen($password) >1) $error = 1;

   if($error == 0)
      {
         //Variable zum Eintrag der Daten in die Datenbank
           $eintragen   =   mysql_query($eintrag) or die (mysql_error());
           echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
      }
   else
      {   
           echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
      }
}
?>
   </form>
</body>
</html>


sollte funktionieren...


Nach oben
Private Nachricht senden
xxcool25xx
Erfahrener [User]
Erfahrener



Anmeldung: 16.02.07
Beiträge: 50
Wohnort: ganz im Sü ...

BeitragVerfasst am: 30.08.2008, 10:59    Titel: Antworten mit Zitat

Hallo,
jetzt bringt der jedes mal die "else Meldung" egal was ich mache...


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
maudim02
Helfer [User]
Helfer



Anmeldung: 30.09.06
Beiträge: 158

BeitragVerfasst am: 30.08.2008, 13:29    Titel: Antworten mit Zitat

Code:

<?php
   /*Variablen zum Einfügen der Daten in die Datenbank*/
   $head       =   $_POST["head"];
   $url        =   $_POST["url"];
   $descript   =   $_POST["descript"];
   $username   =   $_POST["username"];
   $password   =   $_POST["password"];
   /*Verbindung zu der Datenbank*/
   mysql_connect ("localhost","xxx","xxxxx") or die ("Keine Verbindung möglich!");
   mysql_select_db ("xxxxxx") or die ("Die Datenbank existiert nicht!");
   /*Script zum Kommunizieren mit der Datenbank*/
   $eintrag   =   "INSERT INTO my_links (head, url, descript, username, password) VALUES ('$head','$url', '$descript', '$username','$password')";
   
?>


<html>
<head>
<link href="content.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<form action='<?php echo $_POST['PHP_SELF']; ?>' method='post'>
<?php
   

   if(!($_POST['ok']))
      {
         echo "
<table>
   <tr>
   
      <td class='content'>Bezeichnung</td>
      <td><input value='' class='fields' name='head' type='text'></td>
   </tr>
   <tr>
      <td class='content'>Website URL</td>
      <td><input value='' class='fields' name='url'></td>
   </tr>
   <tr>
      <td class='content''>Beschreibung</td>
      <td><textarea cols='50' rows='10' name='descript' class='fields'></textarea></td>
   </tr>
   <tr>
      <td class='content'>Username</td>
      <td><input value='aaaa' class='fields' name='username' type='text'></td>
   </tr>
   <tr>
      <td class='content'>Passwort</td>
      <td><input value='' class='fields' name='password' type='text'></td>
   </tr>
   <tr>
      <td><input type='submit' value='Daten senden' class='button' name='ok'></td>
      <td><input type='reset' value='Daten löschen' class='button'></td>
   </tr>   
</table>
   </form>";
   
      }
   else if($_POST['ok'])
      {
                  if(strlen($head) >1) $error = 1;
                  if(strlen($url)  >1) $error = 1;
                  if(strlen($username)  >1) $error = 1;
                  if(strlen($password) >1) $error = 1;

   if($error == 0)
      {
         //Variable zum Eintrag der Daten in die Datenbank
           $eintragen   =   mysql_query($eintrag) or die (mysql_error());
           echo "Ihre Daten wurden erfolgreich in die Datenbank eingetragen";
      }
   else
      {   
           echo "Es ist ein Fehler aufgetreten, bitte alle formulare ausfühlen!";
      }
}
?>
</body>
</html>

so, jetzt aber Smilie Da </form> war zu weit hinten... sollte normalerweise funktionieren... habs aber nicht probiert...


Nach oben
Private Nachricht senden
xxcool25xx
Erfahrener [User]
Erfahrener



Anmeldung: 16.02.07
Beiträge: 50
Wohnort: ganz im Sü ...

BeitragVerfasst am: 01.09.2008, 06:08    Titel: Antworten mit Zitat

danke schon mal für die Antwort, ich habe ess jetzt auch gefunden, es lag nicht an </form>

es lag an dem da
Code:
if(strlen($head) >1) $error = 1;
                  if(strlen($url)  >1) $error = 1;
                  if(strlen($username)  >1) $error = 1;
                  if(strlen($password) >1) $error = 1;

ich habe mich da vertippt, es sollte so heißen
Code:
if(strlen($head) <1) $error = 1;
                  if(strlen($url)  <1) $error = 1;
                  if(strlen($username)  <1) $error = 1;
                  if(strlen($password) <1) $error = 1;

Aber danke für deine Hilfe, jetzt funktioniert das auch,

Was mich noch interessierren würde, ich habe in der DB die ID die er selbst hochzählt, wenn ich aber ein Tatensatz mit der Nr. 4 lösche, schreib er dann beim nächsten nicht 4 sondern gleich 5 der überspringt die gelöschte ID, ist das normal???


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
umt
Beliebter [User]
Beliebter



Anmeldung: 29.11.07
Beiträge: 310

BeitragVerfasst am: 01.09.2008, 06:51    Titel: Antworten mit Zitat

Ja, ist normal.
_________________
www.jexlab.net - Webentwicklung zu fairen Konditionen
www.netzonaut.de - Blog zum Thema Webentwicklung, Internet, Linux und OpenSource-Software


Nach oben
Private Nachricht senden Website dieses Benutzers besuchen
maudim02
Helfer [User]
Helfer



Anmeldung: 30.09.06
Beiträge: 158

BeitragVerfasst am: 01.09.2008, 08:20    Titel: Antworten mit Zitat

naja die id ist bei dir der primary key, also ein eindeutiges erkennungsmerkmal...
Damit es unter keinen Umständen vorkommt dass zwei Datensätze die gleiche ID haben, wird dann bei der letzten gespeicherten ID +1 gerechnet und somit wird gewährleistet dass sicher nur ein Datensatz pro ID ist!

€dit: Achja die guten tippfehler Smilie Funktioniert dass eigentlich auch wenn das "</form>" tag an der alten stelle steht, also ganz unten?

€dit2: *AufDenKopfKlopf* Smilie Habs grad gecheckt das des so oder so geht *g* Also egal ob das </form> jetzt vor dem php-code steht oder nachher... Oh mann, ohne kaffee in der früh geht nix Smilie


Nach oben
Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Toplist bewertung / Problem: Banner n... MasterM112 HTML & CSS 0 20.11.2008, 18:12 Letzten Beitrag anzeigen
Keine neuen Beiträge Internet Serv Problem Chris Fabian Einsteigerforum 4 06.11.2008, 21:30 Letzten Beitrag anzeigen
Keine neuen Beiträge Onclick Javascript Problem im IE Timbo23 HTML & CSS 3 26.10.2008, 23:33 Letzten Beitrag anzeigen
Keine neuen Beiträge Problem mit Anpassung RaVoo Einsteigerforum 5 13.10.2008, 20:46 Letzten Beitrag anzeigen
Keine neuen Beiträge Problem mit Abtand im IE capillarvane HTML & CSS 2 02.10.2008, 11:51 Letzten Beitrag anzeigen
Threadübersicht