SELECT *
FROM `enzymes`
INNER JOIN `compounds`
ON compounds.compound_id = enzymes.compound_id
WHERE `ec` LIKE '1.11%'
он работает в phpmyadmin и mysql workbench.
Он не будет работать независимо от того, использую ли я backtick все, используя mysql_real_escape_string и добавляю имя базы данных, где это необходимо.php-код phpmyadmin также не будет работать.
ОШИБКИ : Предупреждение : mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, логическое значение задано в ....
та же ошибка для всех других функций, зависящих от ресурса запроса
Upd :
case 'ec':
$dbl = mysql_connect(DB_ADDRESS, DB_USER, DB_PASSWORD);
mysql_select_db("kegg", $dbl);
//a)connection is fine
//b)tried with explicitly providing the db name vs with pre-selection
$sql = "SELECT * FROM enzymes INNER JOIN `compounds` ON compounds.compound_id=enzymes.compound_id";
print_r($sql);
$result = mysql_query( $sql, $dbl);
print mysql_error ($dbl);
while ($row = mysql_fetch_assoc($result)) {
print_r($row)
$items[ $row['name'] ] = $row['compound_id'];
}
,,,
Решение : Спасибо всем, - первым дал решающий ответ Брэд.
$sql = "SELECT enzymes.*, compounds.*\n"
. "FROM enzymes\n"
. " INNER JOIN compounds\n"
. " ON compounds.compound_id = enzymes.compound_id\n"
. "WHERE enzymes.ec LIKE '1.11%' LIMIT 0, 30 ";
Подобная тема возникла недавно, когда предполагалось, что она работает только при выборе определенных полей.Важнейшее решение, когда требуются все данные, - это устранить неоднозначности:
enzymes.*, compounds.*