Я обращаюсь к большому db в php, и я делаю это не достаточно хорошо. У меня есть код, в котором я нуждаюсь, я просто не могу найти хороший способ свести эти утверждения.PHP/SQL, уменьшить количество запросов
$q = $_GET['q'];
(dbinit)
$query = "SELECT post_id FROM wp_postmeta WHERE meta_key = '_billing_email' AND meta_value = '$q'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
$thing = $row['post_id'];
$querys = "SELECT 'meta_value' FROM wp_postmeta WHERE post_id = '$thing' AND meta_key = '_order_number'";
$results = mysql_query($querys);
$rows = mysql_fetch_array($results);
$postid = $rows['meta_value'];
$queryss = "SELECT post_id FROM $table WHERE meta_value = $postid AND meta_key = '_order_number'";
$resultss = mysql_query($query);
$rowss = mysql_fetch_array($result);
$order_id = $rowss['post_id'];
(handling)
}
мне интересно, если есть более эффективный способ сделать эти запросы, или, возможно, у них в одном запросе?
Используйте соединения, обновите свой драйвер, используйте параметризованные запросы. – chris85
@ chris85 так много величия в стольких словах - если бы я мог, снова поднял бы голову. – JimL
** ПРЕДУПРЕЖДЕНИЕ **: вы создали опасную ошибку [SQL injection bug] (http://bobby-tables.com/), поставив данные '$ _GET' непосредственно в ваш запрос. ** НИКОГДА не делайте этого. Вместо этого используйте функцию WordPress [готовые заявления] (http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks) для правильного удаления всех параметров данных. – tadman