Я хотел бы знать, чего мне не хватает в моем коде.Выберите базу данных из списка, а затем запросите его в 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, а затем запросить эту переменную, которая должна сказать функции запроса, какую таблицу выбрать.
Но я не знаю, какой может быть правильный синтаксис.
необходимо создать таблицы вместо базы данных. ваше соединение выполняется только для одной базы данных. $ enlace = mysqli_connect ("localhost", "root", "******", "refGene"); сделать больше таблиц в этой базе данных, а не создавать больше базы данных –
В базе данных refGene у меня есть все необходимые таблицы: refGene_human, refGene_mouse, refGene_zebrafish и refGene_fruitfly –
ok great.than выше будет работать с вами. одно из приведенных выше утверждений будет истинным, и оно сохранит это имя базы данных в переменной базы данных. и тогда эта таблица будет таблицей по умолчанию в запросе –