2016-04-03 3 views
0

Ich habe ein Problem beim Speichern der Daten in meiner Datenbank. Ich meine, zum Beispiel in meiner ansage_request-Tabelle, der Titel, die Beschreibung, der Bildpfad speichern in der Datenbank außer den submittedBy und batchYr.Warum speichern einige Daten nicht in meiner Datenbank?

mein request_announcement.php ist dies:

<?php 

$login_session =$row['username']; 
$position = $row['position']; 
$login_fname = $row['firstname']; 
$login_lname = $row['lastname']; 
$batchYr = $row['batchYr']; 

$submittedBy = $login_fname.' '.$login_lname; 
if(isset($login_session) and $position=='President'){ 
?> 

      <form action="../pres/send_request_announcement.php" method="post" enctype="multipart/form-data"> 

       <label>Submitted by:</label> 
       <input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" disabled > <br/> 

       <label>Batch Year:</label> 
       <input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" disabled><br/> 

<input type="submit" name="submit" value="Request Announcement" style="float: right"/> 

       </form> 
<?php 
} 

?> 

Und das ist mein send_request_announcement.php:

<?php 
    include_once('db.php'); 
    if(isset($_POST['submit'])) { 

     $submittedBy = $_POST['submittedBy']; 
     $batchYr = $_POST['batchYr']; 


     $sql = "INSERT INTO announcement_requests (submittedBy, batchYr) VALUES('$submittedBy','$batchYr')"; 
      mysql_query($sql); 

      echo "<script type='text/javascript'>alert('Announcement Request Sent!'); window.location.assign('../user/home.php');</script>"; 

    } 

?> 
+0

Sie mischen mysql und mysqli – Mihai

+0

Bitte reduzieren Sie Ihren Code behalten nur Teile, die immer noch dieses Problem enthalten. Überprüfen Sie dies: http://StackOverflow.com/Help/Mcve –

+0

wenn das der Grund ist, dann sollten andere Spalten wie Titel, Beschreibung nicht gespeichert werden, aber sie speichern auf der Datenbank, nur nicht die 'suppliedBy' und' batchYr' @Mihai – user6151429

Antwort

0

First off, mit Quit mysql_* seiner einen veralteten und schlecht-Erweiterung, die Sie nicht wollen, um sich daran zu gewöhnen.

Wenn es darum geht, warum es wird nicht in der Datenbank gespeichert werden:
Sie verwenden beide mysql_* und mysqli_* Funktionen, sie sind nicht die gleichen lib, so, wenn Sie mit mysqli Verbindung zu einer Datenbank werden Sie nicht in der Lage sein, Verwenden Sie es mit mysql_* Anrufe.
Tauschen Sie alle Ihre mysql_* Anrufe zu passenden mysqli_* Anrufe und es sollte besser funktionieren.

Weitere ... Überprüfen Sie das Kapitel über prepared statements in der PHP-Dokumentation für mysqli. Es hilft Ihnen bei der Vorbeugung von sql-Injektionen, für die Sie im Moment anfällig sind.

+1

'mysqli_ *' ist nicht veraltet AFAIK. Aber PDO ist sowieso besser. – Taylan

+0

Entschuldigung, das war ein Fehlgebrauch. Sollte natürlich 'mysql_ *' sein. Danke für das Hinzeigen! :) – Jite

+0

noch besser als mysqli_i ist, PDO zu verwenden. Ein tolles Tutorial, das mir mit PDO geholfen hat, ist [(das einzig richtige) PDO Tutorial] (https://phpdelusions.net/pdo). – Laurens

0

Ich konnte herausfinden, was los ist. Der Grund, warum es nicht einmal auf der Datenbank gespeichert, obwohl ich die richtigen Fragen haben, war, weil in meinem HTML-Format, die sind:

<input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" disabled > <br/> 
<input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" disabled > <br/> 

die disabled hat, die falsch ist, weil behinderte Textfelder nicht enthalten sind, wenn Sie Formulare senden so verwendet, ich readonly statt:

<input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" readOnly="readOnly"> 
<input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" readOnly="readOnly"> 

readOnly ist auch nicht bearbeitet werden. Wenn Sie also Daten in der Datenbank speichern möchten, ohne dass der Benutzer etwas bearbeitet oder etwas eingibt, verwenden Sie einfach readOnly und nicht disabled.

Verwandte Themen