Вот что я хочу сделать: я делаю приложение для создания списков, и у меня есть 2 базы данных MYSQL, одна с таблицей, которая содержит информацию о каждом списке, такая как имя, и вторая база данных, которая содержит списки в виде отдельных таблиц, элементы списков являются строками в этих таблицах. , Я хочу получить выбор всех списков из первой (поисковой) таблицы и получить некоторую информацию, а затем получить все соответствующие элементы списков из соответствующей таблицы. Я хотел бы повторить div с заголовком из первой таблицы, а затем использовать эту таблицу, чтобы также сделать второй запрос для элементов. Можно ли сделать цикл foreach для каждой возвращаемой строки?
Вот мой код до сих пор:
$mysqli2 = new mysqli("localhost", "****", "****", "full_lists");
if ($mysqli2->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " .$mysqli->connect_error;
}
$mysqli = new mysqli("localhost", "****", "****", "lists");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if (!($stmt = $mysqli->prepare("SELECT listname, dbname FROM lists"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
$stmt->bind_result($list, $dbname);
//First statement gets the name of another table in a different database
while ($stmt->fetch()) {
$stmt2 = $mysqli2->prepare("SELECT listitems FROM {$dbname}");
//Second statement uses first to run another select statement getting
//table rows
$stmt2->execute();
$stmt2->bind_result($item);
while ($stmt2->fetch()) { //replace with foreach loop?
????
}
}
Вот где я застрял, я хочу отобразить div для каждого списка $ из первого оператора select, а затем использовать возвращенное $ dbname для выполнения второго оператора. Внутри каждого $ div я хотел бы поместить соответствующие элементы строки как список. В любом случае я мог бы сделать цикл foreach, чтобы сделать результат foreach вместо цикла while?
РЕДАКТИРОВАТЬ: вот изображения таблиц, на отдельных базах данных, но тот же сервер
пример таблицы с информацией о каждой таблице списка:
i.stack.imgur.com/7kEOn.jpg
пример списка элементов списка:
http://i.stack.imgur.com/XrzoD.png
Спасибо за любую помощь
В этих случаях нет ничего плохого в использовании цикла while, и, как вы сказали, вы можете попробовать это:
while ($stmt->fetch()) {
$stmt2 = $mysqli2->prepare("SELECT listitems FROM {$dbname}");
$stmt2->execute();
$stmt2->bind_result($item);
echo '<div>';
echo '<ol>';
while ($stmt2->fetch()) {
echo '<li>' . $item . '</li>';
}
echo '</ol>';
echo '</div>';
}
Других решений пока нет …