sql >> Database >  >> RDS >> Mysql

PHP Order Capture Portal

Vanuit het oogpunt van bruikbaarheid wilt u misschien het ontwerp van uw formulier heroverwegen. Als de gebruiker 149 regels van het bestelformulier invult en per ongeluk op de terug-knop drukt, gaan ze een heel slechte dag hebben. Misschien moet u overwegen om één regel tegelijk vast te leggen, of de gebruiker toe te staan ​​een bestand (spreadsheet, CSV, enz.) te uploaden met alle vermeldingen.

Als u het ontwerp van het formulier niet kunt wijzigen, moet u de regels in een lus verwerken. De lus kan er ongeveer zo uitzien:

for ( $i = 1; $i <=150; $i++ ) {
    $name = $_POST['name' . $i];
    $value = $_POST['value1' . $i];
    // capture the rest of the field values
    $query = "INSERT INTO (...) VALUES ($name, $value, ...)";
    mysql_query($query);
}

Als alternatief kunt u het resultaat van elke lus toevoegen aan één grote query en deze uitvoeren nadat alle 150 rijen zijn vastgelegd.

Kortheidshalve heb ik een paar details weggelaten die je moet toevoegen:

  • Ontsnap aan uw invoer om ervoor te zorgen dat uw gebruiker uw database niet beschadigt
  • Overweeg het gebruik van PDO of iets anders dan mysql_* om uw databasegebruik gemakkelijker te maken.
  • Controleer of u geen lege waarden vastlegt en invoegt als een rij leeg is gelaten.



  1. Waarom negeert Rails een Rollback in een (pseudo)geneste transactie?

  2. Moet ik ontsnappen aan een verwachte integerwaarde met mysql_real_escape_string of kan ik gewoon (int)$expectedinteger gebruiken

  3. Krullende accolades in T-SQL

  4. Query invoegen, controleren of record bestaat - Zo niet, voeg het dan in