2016-12-13 2 views
0

Я хотел бы знать, чего мне не хватает в моем коде.Выберите базу данных из списка, а затем запросите его в PHP

У меня есть этот HTML код:

<html> 
    <head> 
    <title>Human gene catalog</title> 
    </head> 
<body> 
    <h1>Reference sequence and Gene Ontology catalog</h1> 
    <p> 
    <b>1.Search for a gene:</b> 
    <form action=prueba.php method=post> 
     <select name=organism> 
     <option value=1>Human</option> 
     <option value=2>Mouse</option> 
     <option value=3>Zebrafish</option> 
     <option value=4>Fruit fly</option> 
     </select> 
     <label>Please select a gene:</label> 
     <br/> 
     <input type=text name=gene> 
     <br/><br/> 
     <input type=submit name=submit value=Submit> 
    </form> 
    </p> 
</html> 

И это PHP код:

<?php 
    $gene = $_POST["gene"]; 
    $specie = $_POST["organism"]; 

    $enlace = mysqli_connect("localhost","root","******","refGene"); 
    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    if ($specie == 1) { 
     mysqli_select_db($enlace,"refGene_human"); 
    } elseif ($specie == 2) { 
     mysqli_select_db($enlace,"refGene_mouse"); 
    } elseif ($specie == 3) { 
     mysqli_select_db($enlace,"refGene_zebrafish"); 
    } elseif ($specie == 4) { 
     mysqly_select_db($enlace,"refGene_fruitfly"); 
    } else { 
     echo "The gene is not in database"; 
    } 

    $result = mysqli_query($enlace,"select * from (here I dont know what to put,if with one specie, here I put the name of the table) where name2 like '%$gene%'"); 

    echo "<h1>Gene Reference Results</h1>"; 

    echo "<table cellspacing=3 cellpadding=4 border=1 bgcolor=#dddddd>"; 
    echo "<tr align='center'><th>Transcript</th><th>Gene</th <th>Chromosome</th><th>Strand</th><th>Gene_Start</th><th>Gene_End</th><th>CDS_Start</th><th>CDS_End</th><th>ExonCount</th>"; 

    while ($extraido = mysqli_fetch_array($result)){ 
     echo "<tr>"; 
     echo "<td>".$extraido['name']."<br/>"; 
     echo "<td>".$extraido['name2']."<br/>"; 
     echo "<td align='center'>".$extraido['chrom']."<br/>"; 
     echo "<td align='center'>".$extraido['strand']."<br/>"; 
     echo "<td align='right'>".$extraido['txStart']."<br/>"; 
     echo "<td align='right'>".$extraido['txEnd']."<br/>"; 
     echo "<td align='right'>".$extraido['cdsStart']."<br/>"; 
     echo "<td align='right'>".$extraido['cdsEnd']."<br/>"; 
     echo "<td align='right'>".$extraido['exonCount']."<br/>"; 
    } 
    echo "</table>"; 

    mysqli_free_result($result); 
    mysqli_close($enlace); 

В основном то, что я хочу достичь в том, что, выбирая звонкой и имя гена в HTML-документе, он доставит вас к PHP, где, в зависимости от значения specie (1,2,3,4), он выбирает соответствующую базу данных, а затем запрашивает ее, чтобы найти некоторую информацию.

У меня есть правильный код, чтобы он работал, но только с одним типом, без списка выбора в HTML и инструкциях if в PHP, но я хотел бы заставить его работать более чем в одном.

Я думаю, что я должен объявить некоторую переменную перед оператором if в PHP, а затем запросить эту переменную, которая должна сказать функции запроса, какую таблицу выбрать.

Но я не знаю, какой может быть правильный синтаксис.

ответ

0
if ($specie == 1) { 
    mysqli_select_db($enlace,"refGene_human"); 
    $database = 'refGene_human'; 
} 
elseif ($specie == 2) { 
    mysqli_select_db($enlace,"refGene_mouse"); 
    $database = 'refGene_mouse'; 
} 
elseif ($specie == 3) { 
    mysqli_select_db($enlace,"refGene_zebrafish"); 
    $database = 'refGene_zebrafish'; 
} 
elseif ($specie == 4) { 
    mysqly_select_db($enlace,"refGene_fruitfly"); 
    $database = 'refGene_fruitfly'; 
} 
else { 
    echo "The gene is not in database"; 
} 

$result = mysqli_query($enlace,"select * from '$database' where name2 like '%$gene%'"); 
+0

необходимо создать таблицы вместо базы данных. ваше соединение выполняется только для одной базы данных. $ enlace = mysqli_connect ("localhost", "root", "******", "refGene"); сделать больше таблиц в этой базе данных, а не создавать больше базы данных –

+0

В базе данных refGene у меня есть все необходимые таблицы: refGene_human, refGene_mouse, refGene_zebrafish и refGene_fruitfly –

+0

ok great.than выше будет работать с вами. одно из приведенных выше утверждений будет истинным, и оно сохранит это имя базы данных в переменной базы данных. и тогда эта таблица будет таблицей по умолчанию в запросе –

Смежные вопросы