2015-06-21 31 views
0

我試圖做一個代碼,將通過php添加一個條目到我的MySQL表(稱爲「rechnungen」)。所以我在html中做了一些輸入,最後我嘗試將信息插入到我的表中(使用INSERT INTO ...命令)。所以這是我做的:錯誤,通過php填寫一個mysql表格

<?php 
    Session_Start(); 

    $username=$_SESSION['username']; 
    $password=$_SESSION['password']; 
    $dbname=$_SESSION['dbname']; 
    $servername=$_SESSION['hostname']; 

    /*conn dev*/ 
    $conn = mysql_connect($servername, $username, $password); 

    if($conn === false){ 
    header("Location: LogIn.php"); 
    } 
?> 

    <!DOCTYPE html> 
    <html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
     <title></title> 
    </head> 
    <body> 
     <main> 
      <form method="POST" action=""> 
       <div class="form_neueRechnung"> 
        <!-- part 1 --> 
        <input type="text" name="suche_Vname_Patienten" placeholder="Vorname" required=""> 
         <input type="text" name="suche_Nname_Patienten" placeholder="Nachname" required=""> 
          <input type="number" id="id_Patient" name="id_patient" placeholder="Pat. Nr." Value=" 
           <?php echo $KID_output; ?>" required=""> 
          </td> 
          <input type="radio" name="Behandlung" value="Osteopathie" onclick="andere()" required=""> 
           <input type="radio" name="Behandlung" value="Krankengymnastik" onclick="andere()" required=""> 
            <input type="radio" name="Behandlung" id="andere_Behandlung" value="andere" onclick="andere()" required=""> 
             <input type="text" name="andereBehandlung_text" id="andereBehandlung_text" placeholder="andere" style="visibility:hidden"> 
              <!-- part 2 --> 
              <input type="radio" name="rezept_rechnung" id="mit_rezept" value="mit_Rezept" onclick="rezept()" required=""> 
               <input type="radio" name="rezept_rechnung" id="ohne_rezept" value="ohne_Rezept" onclick="rezept()" required=""> 
                <input type="text" id="ohne_rezept_text" name="ohne_rezept_text" placeholder="freier Text"> 
                 <!-- part 3 --> 
                 <input type="time" name="termin1_von" required=""> 
                  <input type="time" name="termin1_bis" required=""> 
                   <input type="date" name="termin1_date" required=""> 
                    <!-- submit --> 
                    <input type="submit" class="submit" value="Rechnug erstellen" name="submit" id="submit"> 
                    </div> 
                    <div class="form_fieldset" id="rezept_einstellungen" style="visibility:hidden"> 
                     <input type="date" id="rezept_datum" name="rezept_datum"> 
                      <input type="text" id="rezept_verordnung" name="rezept_verordnung"> 
                       <input type="text" id="rezept_diagnose" name="rezept_diagnose"> 
                       </div> 
                      </form> 
                      <script type="text/javascript">  

      function andere() { 

      if (document.getElementById('andere_Behandlung').checked) { 
       document.getElementById('andere_BehandlungArt').style.visibility = 'visible'; 
      } else { 
       document.getElementById('andere_BehandlungArt').style.visibility = 'hidden'; 
      } 
      } 

      function rezept() { 

      if (document.getElementById('mit_rezept').checked) { 
       document.getElementById('rezept_einstellungen').style.visibility = 'visible'; 
      } else { 
       document.getElementById('rezept_einstellungen').style.visibility = 'hidden'; 
      } 

      if (document.getElementById('ohne_rezept').checked) { 
       document.getElementById('ohne_rezept_text').style.visibility = 'visible'; 
      } else { 
       document.getElementById('ohne_rezept_text').style.visibility = 'hidden'; 
      } 
      } 

     </script> 
                      <?php 
      mysql_connect("$servername","$username","$password") or die("connection failed!"); 
      mysql_select_db($dbname) or die ("no database found"); 
      $query = mysql_query("SELECT * FROM `rechnungen`"); 

      while($row = mysql_fetch_array($query)){ 
       $RID = $row['RechnungsID']; 
      } 
      $RechnungsID = max($RID ,$RID)+1; 

      echo $RechnungsID; 

      $mit_ohne_Rezept = ""; 
      if(isset($_POST['submit'])) { 
       if($_POST['rezept_rechnung'] == "mit_Rezept") { 
       $mit_ohne_Rezept = "1"; 
       } 
       else { 
       $mit_ohne_Rezept = "0"; 
       } 
      } 


      if(isset($_POST['submit'])){ 
       $KundenID=$_POST['id_patient']; 
       $Behandlung=$_POST['Behandlung']; 
       $Rezept_datum=$_POST['rezept_datum']; 
       $Rezept_Verordnung=$_POST['rezept_verordnung']; 
       $Rezept_Diagnose=$_POST['rezept_diagnose']; 
       $ohneRezept_text=$_POST['ohne_rezept_text']; 

       mysql_select_db($dbname,$conn);       
       $result = "INSERT INTO rechnungen (`RechnungsID`, `KundenID`, `Behandlung`, `mit_ohne_Rezept`, `Rezept_datum`, `Rezept_Verordnung`, `Rezept_Diagnose`, `ohneRezept_text`) 
           VALUES ('$RechnungsID','$KundenID','$Behandlung','$mit_ohne_Rezept','$Rezept_datum','$Rezept_Verordnung','$Rezept_Diagnose','$ohneRezept_text)";  
       if (mysql_query($result)) { 
       echo ("finished!"); 
       } else { 
       echo "error". mysql_error(); 
       } 
      }  
      mysql_close($conn); 
      ?> 
                     </main> 
                    </body> 
                   </html> 

我知道這是一個很長的代碼,但我不知道問題出在哪裏。我得到這個錯誤:

errorYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''sdfas)' at line 2 

請幫助我。我很絕望。

+0

不要絕望綿羊 – Drew

回答

1
','$ohneRezept_text)"; 

貌似問題在這裏。

缺少引號?

這就是錯誤是說

還你不需要包裝在報價變量,那麼你可以,但它仍然有疼痛感。如果您的輸入包含引號,則會立即跳出。使用addslashes()

+1

thx soooo多!!就是這樣:)你是我的英雄! :P – pyrosheep

+1

非常小心,pyrosheep!這段代碼充斥着許多安全漏洞,主要是SQL注入。欲瞭解更多信息和教育的笑聲:http://bobby-tables.com/ – FlipperPA