Gå til innhold

Sende array via $_POST i PHP og til database


Anbefalte innlegg

Hei

 

Jeg prøver å lage en admin side til et bildegalleri der jeg kan laste opp bilder og tilegne de ulike katagorier. I denne adminside vil jeg bl.a. ha mulighet til å redigere denne dataen. Dataen vil da lastes inn i en form med data fra databasen (SQLite) der jeg kan endre den og oppdatere ved å trykke submit.

 

Jeg tenker da at _POST metoden skal ta data fra den formen submit knappen som trykkes hører til slik at den kan sendes videre til databasen, men det skjer ikke. Den tar tekstboks dataen fra den siste formen uansett hvilken submit knapp jeg trykk inn. Så tar den data fra radioknappene i alle formene.

 

Er det noen som kan dette og kan hjelpe meg?

 

 

<?php

  // CONNECT TO DATABASE
  $connection = new PDO('sqlite:media.db');
  $connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

 
  // CREATE TABLE
$connection -> exec('CREATE TABLE IF NOT EXISTS imagegallery
                    ( id INTEGER PRIMARY KEY AUTOINCREMENT
                     ,filename VARCHAR(255) NOT NULL
                     ,thumb_filename VARCHAR(255) NOT NULL
                     ,nature INTEGER
                     ,people INTEGER
                     ,animals INTEGER
                    )');
 
?>

<hr>
<h2>Insert into database:</h2>
<br>

<form method="POST">
filename:   
    <input type="text" name="filename">
    <br>
thumb filename:
    <input type="text" name="thumb_filename">
    <br><br>
Category:<br>
Nature:
    <input type="radio" name="nature" value="1" checked> true
    <input type="radio" name="nature" value="0"> false<br>
People:
    <input type="radio" name="people" value="1" checked> true
    <input type="radio" name="people" value="0"> false<br>
Animals:
    <input type="radio" name="animals" value="1" checked> true
    <input type="radio" name="animals" value="0"> false<br>
    <br>
    <input type="submit" name="addrow" value="add row">
</form>

<hr>


<?php

  // READ DATA FROM FORM (Insert into database:)
  if(isset($_POST['addrow']) && isset($_POST['filename']) && isset($_POST['thumb_filename']) && isset($_POST['nature']) && isset($_POST['people']) && isset($_POST['animals'])) {
    $filename = $_POST['filename'];
    $thumb_filename = $_POST['thumb_filename'];
    
    $nature = $_POST['nature'];
    $people = $_POST['people'];
    $animals = $_POST['animals'];

    // INSERT DATA FROM FORM INTO DATABASE   
    $sql = 'INSERT INTO imagegallery (filename , thumb_filename, nature, people, animals) VALUES (:filename , :thumb_filename, :nature, :people, :animals)';
    $stmt = $connection->prepare($sql);
    $stmt->execute(['filename' => $filename, 'thumb_filename' => $thumb_filename, 'nature' => $nature, 'people' => $people, 'animals' => $animals]);
 
  }
 
?>


<h2>Output from database:</h2><br>

<?php

  // SELECT WHOLE DATABASE
  $sql = 'SELECT * FROM imagegallery';
  $stmt = $connection->prepare($sql);
  $stmt->execute([]);
 
 
  // BUILD FORMS AND POPULATE WITH DATA FROM DATABASE
  echo '<form method="POST">'."\n";
 
    while($row = $stmt->fetch()) {
      
      print "<pre>"; print_r ($row); print "</pre>";
      
      echo $row ['id'] . "<br>\n";      
      echo 'filename: <input type="text" name="filename"  value="' . $row ['filename'] . ' "  > <br>'."\n";
      echo 'thumb filename: <input type="text" name="thumb_filename"  value=" ' . $row ['thumb_filename'] . ' "  > <br>'."\n";
      
      foreach(array('nature', 'people', 'animals') as $type) {

        echo ucfirst($type).": ";
        foreach(array(1 => 'true', 0 => 'false') as $value => $prompt) {
          echo "\n"."<input type='radio' name='row[{$row['id']}][$type]' value='$value'";
          echo ($row[$type] == $value) ? " checked" : "";
          echo ">$prompt";
        }
        
        echo "<br>"."\n";
        
      }
      
      echo "<br>";
      echo '<input type="submit" name="updaterow" value="Update Row">'."\n";
      echo '<br><br><hr style="border: 1px dashed;"><br>'."\n\n";
           
  }
 
  echo "</form>";
      
?>


<?php

// UPDATE DATA IN DATABASE WITH EDITED DATA FROM FORM

$editedRow = $_POST;

/*
if(isset($_POST['updaterow'])){
 
  $filename = $_POST['filename'];
  $thumb_filename = $_POST['thumb_filename'];
   
   $sql = 'UPDATE imagegallery
           SET filename = :filename, thumb_filename = :thumb_filename
           WHERE id = :id';
   $stmt = $connection->prepare($sql);
   $stmt->execute(['filename' => $filename, 'thumb_filename' => $thumb_filename, 'id' => $id]);
   
}
*/

print "<pre>"; print_r($editedRow); print "</pre>";
?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...