2015-05-06 2 views
-1

У меня есть программа, в которой пользователь вводит текст в текстовое поле, а затем этот текст создается в файл. При каждом нажатии кнопки отправки база данных создает задание и получает идентификатор jobID. Мне было интересно, если бы все-таки было указано имя файла job_id.fasta, а не просто называть его new.fasta. Таким образом, я могу хранить больше файлов! Заранее спасибо. Я отправлю код создания файла и сохранил его.Как изменить имя файла на идентификатор первичного ключа?

<form method="POST", action="/~cs4380sp15grp4/home/blast.php" class="form-inline"> 
<textarea id="BlastSearch" type="textarea" name="BlastSearch" class="form-control" placeholder="Protein sequence in fasta format"></textarea> 
<button id="run" type="submit" name="submit" class="btn btn-primary"><span class="glyphicon glyphicon-wrench"></span> Run BLAST</button> 
</form> 

<?php 
    session_start(); 



    require_once '../secure/database.php'; 
    $mysqli = new mysqli($dbhost,$dbuser,$dbpass,$dbname); 

    if($mysqli->connect_error){ 
      exit('CON Error: ' . $mysqli->connect_errno . ' ' . $mysqli->connect_error); 
    } 

    //Insert the values into the database 

    if(isset($_POST['submit'])){ 


      $sequence = $_POST['BlastSearch']; 

      //create a new .fasta file and put the sequence the user wants to search for in that file 
      $file = 'uploads/new.fasta'; 
      $current = $sequence; 
      file_put_contents($file, $current); 
?> 
+0

Я не вижу здесь вставку, но insert_id должен это делать, http://php.net/manual/en/m ysqli.insert-id.php. – chris85

+0

Спасибо. Как я могу добавить это в конец каталога? Как «студенты/группы/home /'.$ mysqli-> insert_id. '. Fasta'? – IloveCODE

ответ

1

Вы можете просто вставить запись в базе данных до создания нового файла и получить job_id с помощью $mysqli->insert_id, чтобы сделать имя из файл job_id.fasta

<?php 
session_start(); 
require_once '../secure/database.php'; 
$mysqli = new mysqli($dbhost,$dbuser,$dbpass,$dbname); 

if($mysqli->connect_error){ 
     exit('CON Error: ' . $mysqli->connect_errno . ' ' . $mysqli->connect_error); 
} 

//Insert the values into the database 

if(isset($_POST['submit'])){ 

     $sequence = $_POST['BlastSearch']; 
     $query = "INSERT INTO `jobs` (`BlastSearch`) VALUES ('".$sequence."')"; 
     $mysqli->query($query); 
     $job_id = $mysqli->insert_id; 
     //create a new .fasta file and put the sequence the user wants to search for in that file 
     $file = "uploads/".$job_id.".fasta"; 
     $current = $sequence; 
     file_put_contents($file, $current); 
} 
?> 
+0

Спасибо за помощь! – IloveCODE

0

Предполагая, что job_id будет автоматически вставлен ID, вы можете использовать last_idhttp://php.net/manual/en/mysqli.insert-id.php:

//Insert the values into the database 

// Fictitious MySQL 
$sql = "INSERT INTO search (keyword) VALUES ('mysearch')"; 
$last_id = ""; 

if ($mysqli->query($sql) === TRUE) { 
    $last_id = $mysqli->insert_id; 
} else { 
    echo "Error: " . $sql . "<br>" . $mysqli->error; 
    die(); 
} 
// End fictitious MySQL 

if(isset($_POST['submit'])){ 
    $sequence = $_POST['BlastSearch']; 

    //create a new .fasta file and put the sequence the user wants to search for in that file 
    $file = 'uploads/'.$last_id.'.fasta'; // < Use insert_id here. 
    $current = $sequence; 
    file_put_contents($file, $current); 
Смежные вопросы