Я работаю над небольшим 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?
упростите свой запрос до SELECT * FROM заголовков, где id = $ id && id = $ id2
если когда-либо это не выход, вы хотите, чтобы ваш вопрос был более ясным для всех, чтобы понять, таким образом, мы сможем предоставить вам лучший ответ.
Мне так нравятся такие вопросы. Это дает мне возможность опубликовать случайные догадки. :-)
Извините за экспертов, пожалуйста, не делайте слишком много.
@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>";
}
Но я хочу что-то вроде......
Если вы прочитали все комментарии, вы увидите, что большинство людей просто не понимают, зачем вам нужно это делать в одном запросе. Я тоже.
Что не так с двумя запросами?
Это невозможно. Вы должны запустить два отдельных запроса. Если это то, что вас беспокоит, не волнуйтесь, второй запрос будет намного быстрее, чем первый.
Посмотрите здесь => mysqli.multi-query
Вы можете использовать Mullti Query.
Выполняет один или несколько запросов, которые объединены точкой с запятой.
Но в вашем примере вы можете комбинировать это с OR
.
$sql = "select * from titles where id=$id OR id=$id2"
"select * from titles where id=$id OR id=$id2"
title, "select * from titles where id=$id OR id=$id2"
это даст 2 идентификатора и вернет 2 строки.