Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme beim �bertragen an eine Mysql Datenbank

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme beim �bertragen an eine Mysql Datenbank

    Hallo Leute

    Ich habe folgendes Problem, und zwar bastel ich gerade an einem Script mit PHP und Mysql was die aufgabe haben soll daten in eine mysql Tabelle aufzunehmen. Die Daten werden �ber ein Formular aufgenommen und gespeichert, und bei einer unvollst�ndigen eingabe soll eine Fehlermeldung ausgegeben werden und die vorigen angaben in den feldern gespeichert bleiben.
    Naja dem ist aber leider nicht so.

    Das script reagiert irgendwie immer gleich.

    Es kommt immer eine Erfolgsmeldung wenn die Daten �bermittelt werden solln und auch keine Fehlermeldung bei einer unvollst�ndigen eingabe.Und
    wie solls anders sein nat�rlich auch kein eintrag in die DB tabelle.
    Das script h�nge ich mal an
    Ich muss dazu sagen das das meine erstes Projekt mit PHP und Mysql ist und mein Wissen �ber die Thematik noch l�ckenhaft ist .
    W�reaber klasse wenn hier vielleicht wer weiter weiss
    schonmal besten Dank

    mo

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>admintest</title>
    </head>
    <body>
    <?php 
    // pr�fen ob das formular abgeschickt wurde
    if($_POST['flag']==1)
    
    				{
    				//Leerstellen entfernen
    				$_POST['artnr']=trim($_POST['artnr']);
    				$_POST['name']=trim($_POST['name']);
    				$_POST['gr']=trim($_POST['gr']);
    				$_POST['beschreibung']=trim($_POST['beschreibung']);
    				
    				//evt vorhandenen HTML code entfernen
    				$_POST['artnr']=strip_tags($_POST['artnr']);
    				$_POST['name']=strip_tags($_POST['name']);
    				$_POST['gr']=strip_tags($_POST['gr']);
    				$_POST['beschreibung']=strip_tags($_POST['beschreibung']);
    				
    				//pr�fen ob alle felder auusgef���t worden sind
    				if(!$_POST['artnr'])
    				    {
    						$_fehler="Bitte geben Sie eine Artikelnummer ein!!
    ";
    						}
    						
    						if(!$_POST['name'])
    				    {
    						$_fehler="Bitte geben Sie einen namen ein!!
    ";
    						}
    						
    						if(!$_POST['gr'])
    				    {
    						$_fehler="Bitte geben Sie eine Gr��e an!!
    ";
    						}
    						
    						if(!$_POST['beschreibung'])
    				    {
    						$_fehler="Bitte geben Sie eine beschreibung ein!!
    ";
    						}
    						
    						//wenn nicht vollst�ndig TxT ausgabe formatieren und $_POST['flag'] 
    						//l�schen form wird neu angezeigt
    					  if($_fehler)
    						{
    						$meldung="<h2><font color=red>".$fehler."</font></h2>";
    						unset($_POST['flag']);
    						}			
    						
    						//keine fehler daten in die DB �bertragen
    						else
    						{
    						//mysql befehle
    						$tblname="testdb";
    						$sql="INSERT INTO $tblname(artnr,name,gr,beschreibung)
    						      values ('".$_POST['artnr']."',
    									'".$_POST['name']."',
    									'".$_POST['gr']."',
    									'".$_POST['beschreibung']."',
    								       )";
    									
    						//verbinden zur DB
    						$link = mysql_connect("localhost", "web553", "fumanchu");
    						mysql_select_db("testdb", $link);
    						mysql_query($sql, $link);
    						
    						}
    						
    					  $meldung="<h2><font color=red>Der Artikel wurde aufegnommen</font></h2>";
    						
    						//ausgeben der meldung
    						echo $meldung;
    						}
    				
     ?> 
    
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    
    			<input type="hidden" name="flag" value="1">
    			
    			
    
    ArtNR.:
    
    			<input type="text" name="artnr" value="<?php echo $_POST['artnr']; ?>"></p>
    			
    			
    
    Name:
    
    			<input type="text" name="name" value="<?php echo $_POST['name']; ?>"></p>
    			
    			
    
    Gr.
    
    			<input type="text" name="gr" value="<?php echo $_POST['gr']; ?>"></p>
    			
    			
    
    Beschreibung
    
    			<textarea rows="5" cols="50" name="beschreibung" >
    			<?php echo $_POST['beschreibung']; ?>
        </textarea>
    		</p>
    		<input type="submit" value="einstellen">
    </form>
    
    </body>
    </html>

    Hier nochmal ein Bild von der sql Tabelle



    Und noch ein kleines script um die Verbindung zu sql zu testen
    welches folgende Fehlermeldung ausgibt:
    ---------------------------------------------------------------------------------------------------------------------------
    Verbindung wurde aufgebaut
    Konnte Datenbank nicht benutzen.
    Der Grund daf�r: Access denied for user: 'web553@localhost' to database 'testdb'
    ---------------------------------------------------------------------------------------------------------------------------

    und hier das script welches die ausgabe erzeugt

    Einmal die config.php
    Code:
    <?php
        // config.php
        error_reporting(E_ALL);
    
        define('MYSQL_HOST',     'localhost');
        define('MYSQL_USER',     'web553');
        define('MYSQL_PASS',     'fumanchu');
        define('MYSQL_DATABASE', 'testdb');
    ?>
    und die testsql.php
    Code:
    <?php
      //testsql.php   
     error_reporting(E_ALL);
    
        include 'config.php';
       
    
        if(!@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS)) {
            echo "Es konnte keine Verbindung aufgebaut werden";
        }
        else
    		{
        echo "Verbindung wurde aufgebaut
    \n";
        }
        if(!mysql_select_db(MYSQL_DATABASE)) {
            echo "Konnte Datenbank nicht benutzen.
    \n";
            echo "Der Grund daf�r: ".mysql_error()."\n";
        }
    else
    {
        echo "Die Datenbank wurde ausgew�hlt";
    }
        
    ?>

  • #2
    Also erstmal kannst das INSERT nicht klappen da du keine Verbindung zur DB hast.

    An deinem Code kann ich aber erstmal keinen Fehler finden.

    Bei deiner Fehlerausgabe würde ich die Fehler jeweils in einen Array ablegen und dann nacheinander ausgeben. So zeigt er immer nur den zuletzt gefundenen Fehler an!

    Kommentar


    • #3
      Ich verrate mal ein gant geheime Funktion von PHP: mysql_error. Obwohl, so geheim ist die Funktion auch wieder nicht, steht sogar in der Doku. Aber die liest ja kaum einer.

      Gruß
      phpfan

      Kommentar

      Lädt...
      X