Я пытаюсь выполнить две вещи здесь с помощью этого кода. Я пишу PHP прямо на страницу WP, используя плагин INSERT PHP.
1) Запросите базу данных MySQL и верните результаты из одного столбца в четыре столбца.
2) Сделать каждый результат своей собственной гиперссылкой, которая направляет пользователя на новую страницу WP, которая запускает новый запрос на этой странице.
Я в состоянии заставить запрос показывать результаты и даже превращать эти результаты в динамическую гиперссылку, однако я не могу получить форматирование вниз. Прямо сейчас он просто возвращает результат в один столбец. Вот что у меня есть:
[insert_php]
$servername = "localhost";
$username = "login"; //edited for privacy
$password = "password"; //edited for privacy
$database = "database"; //edited for privacy
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
//get results from database
$result = mysqli_query($conn,"SELECT mine FROM mines ORDER BY mine");
$all_property = array(); //declare an array for saving property
//showing property
echo '<table class="data-table">
<tr class="data-heading">'; //initialize table tag
while ($property = mysqli_fetch_field($result)) {
echo '<td>' . $property->name . '</td>'; //get field name for header
array_push($all_property, $property->name); //save those to array
}
echo '</tr>'; //end tr tag
//showing all data
while ($row = mysqli_fetch_array($result)) {
echo "<tr>";
foreach ($all_property as $item) {
echo "<td><a href='urlhere/$row[$item]'>".$row[$item]. "</a>"."</td>"; //get items using property value
}
echo '</tr>';
}
echo "</table>";
[/insert_php]
Спасибо за любую помощь, которую вы можете предложить.
Я хотел бы, чтобы результаты выглядели так (каждый в виде гиперссылки):
Я смог решить это. До сих пор не получили результаты для правильной гиперссылки, но массив теперь заполняет более четырех столбцов. Вот мой код:
$sql = "SELECT mine FROM mines ORDER by mine";
$result = mysqli_query($conn, $sql);
if ($result) {
$data = array();
while($row = $result->fetch_assoc()) {
$data[] = $row['mine'];
}
}
if (is_array($data) && count($data)) { // if array's not empty, create HTML
//create a table & header row
$htmlout="<table><tr>
<th colspan='4'>Mine</th></tr>
<tr>
";
$counter = 1; //keep count of data
foreach ($data as $mines) {
//table cell for datum
$htmlout .= "<td>$mines</td>\n";
//rows of 4
if ($counter % 4 == 0) {
$htmlout .= "</tr>\n<tr>\n";
}
$counter++;
}
}
$htmlout .= "</tr></table>";
echo $htmlout;
Других решений пока нет …