我使用mychem cartridge建立了一个mysql化学数据库。我使用Peter Ertl的JSME javascript模块绘制分子并喂养分子“微笑”。用于构建mysql查询的字符串。
当我在mysql控制台中输入我的请求时,我会以正确的顺序得到结果,并按照tan列进行排序。
当我使用以下命令通过php将查询发送到mysql数据库时:
$db = mysql_connect('localhost', '****', '****') or die ('Unable to connect');
mysql_select_db('mychem', $db) or die(mysql_error($db));
$query = "SET @fp = (SELECT FINGERPRINT2(SMILES_TO_MOLECULE('".$_POST['smiles']."')))";
$results = mysql_query($query, $db) or die(mysql_error($db));
$query = "SELECT No, Name from (SELECT No, Name, tan from (SELECT No, Name, TANIMOTO(@fp, fin) as tan FROM (SELECT compounds.name as No, pdt.fullname as Name, bin_structures.fp2 as fin From pdt,compounds,bin_structures WHERE pdt.name=compounds.name AND compounds.id=bin_structures.compound_id AND MATCH_SUBSTRUCT('".$_POST['smiles']."',obserialized)) x order by tan DESC) y)z";
$results = mysql_query($query, $db) or die(mysql_error($db));
用于填充表格的PHP代码:
while ($row = mysql_fetch_assoc($results)) {
echo "<tr>";
echo '<td><a href="info.php?name='.$row["No"].'">'.$row["No"].'</a></td><td>'.$row["Name"]./*'</td><td>'.$tan.*/'</td><td><img src ="structures/'.$row["No"].'.png" height="150"></td>';
echo "</tr>";
}
mysql_free_result($results); ?>
然后我得到在名称列上排序的结果。
你知道我做错了什么吗?
我添加了一个echo语句来打印出我的查询。我在mysql控制台中使用了该查询,但我得到了正确顺序的结果。
感谢您的投入