Выполнить два запроса одновременно

0

Я работаю над небольшим PHP-скриптом, и я хочу использовать два запроса mysqli в одном выражении. Вот два вопроса:

$sql = ("select * from titles where id=$id")
$sql2 =("select * from titles where id=$id2") 

и я хочу вывести их следующим образом:

<li><span>RECORD FROM QUERY1</span><span>RECORD FROM QUERY2</span></li>

Можно ли это сделать с помощью Mysqli и PHP?

  • 4
    Почему бы не получить все данные первым запросом, а затем обработать их с помощью PHP? По моему опыту, нет, вы не можете выполнить 2 запроса одновременно.
  • 0
    @ShaifulIslam это не то, что я ищу! если я использую ваш код и когда я выполню код, он выдаст: <li> <span> RECORD1 </ span> </ li> <li> <span> RECORD2 </ span> </ li> мне нужно использовать данные из двух запросов одновременно.
Показать ещё 4 комментария
Теги:
mysqli

4 ответа

0

упростите свой запрос до SELECT * FROM заголовков, где id = $ id && id = $ id2

если когда-либо это не выход, вы хотите, чтобы ваш вопрос был более ясным для всех, чтобы понять, таким образом, мы сможем предоставить вам лучший ответ.

0

Мне так нравятся такие вопросы. Это дает мне возможность опубликовать случайные догадки. :-)

Извините за экспертов, пожалуйста, не делайте слишком много.

@HafidaArhzaouy, ваш вопрос действительно неясен, и похоже, вы даже не пытались что-то сделать.

Таким образом, ваш вопрос может быть следующим:

Дорогой, у меня этот код работает хорошо:

$mysqli = new mysqli($host, $user, $password, $database);
if (mysqli_connect_errno()) {
    printf("mysqli connection error: %s\n", mysqli_connect_error());
    exit();
}
    $sth = $mysqli->prepare('select * from titles where id = ?' );
    $sth->bindParam('s', $id);
    $sth->execute();
    $result = $sth->fetch_result();
    $rows1 = $result->fetch_all();

    $sth = $mysqli->prepare('select * from titles where id = ?' );
    $sth->bindParam('s', $id2);
    $sth->execute();
    $result = $sth->fetch_result();
    $rows2 = $result->fetch_all();


    foreach($rows1 as $idx=>$item1) {
        echo "<li><span>RECORD FROM QUERY1 ".implode(',',$item1). "</span></li>";
        echo "<li><span>RECORD FROM QUERY2 ".implode(',',$rows2[$idx]). "</span></li>";
    }

Но я хочу что-то вроде......

Если вы прочитали все комментарии, вы увидите, что большинство людей просто не понимают, зачем вам нужно это делать в одном запросе. Я тоже.

Что не так с двумя запросами?

  • 0
    Это действительно не ответ; это комментарий. Я воздержусь от понижения голосов, но вы действительно должны рассмотреть возможность удаления этого.
  • 0
    Я думаю, что автор действительно новичок и нуждается в помощи, чтобы начать запрос. Или даже если я ошибаюсь, он может лучше объяснить, в чем проблема.
Показать ещё 12 комментариев
0

Это невозможно. Вы должны запустить два отдельных запроса. Если это то, что вас беспокоит, не волнуйтесь, второй запрос будет намного быстрее, чем первый.

Посмотрите здесь => mysqli.multi-query

0

Вы можете использовать Mullti Query.

Выполняет один или несколько запросов, которые объединены точкой с запятой.

Но в вашем примере вы можете комбинировать это с OR.

$sql = "select * from titles where id=$id OR id=$id2"
  • 0
    Это не то, что я ищу. В моей таблице 2 записи с разными идентификаторами. Когда я буду использовать while ($ row = $ result-> fetch_assoc ()) {}, я не смогу получить содержимое двух записей одновременно
  • 0
    @HafidaArhzaouy вы можете сделать это с помощью "select * from titles where id=$id OR id=$id2" title, "select * from titles where id=$id OR id=$id2" это даст 2 идентификатора и вернет 2 строки.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню