Я побежал mysql_query
и запросил таблицу, которую я выбрал, затем использовал mysql_fetch_assoc
поместить результаты в массив. Затем я попытался перебрать этот массив и, в основном, я запустил if
заявление о том, что если сообщение имеет определенный идентификатор категории, я хочу, чтобы оно переместилось в другой массив, но оно просто не работает. Вот что у меня сейчас есть:
$getPostType = "SELECT * FROM myTable";
$queryPostType = mysql_query($getPostType) or die("Could Not Connect: ".mysql_error());
$postTypeArray = mysql_fetch_assoc($queryPostType);
$queryPostType1 = array();
foreach ($postTypeArray as $key => $value) {
echo $key;
echo $value;
if($postTypeArray['category']===7){
echo $key;
echo $value;
$queryPostType1[]=$postTypeArray[$value];
//array_push($queryPostType1, $postTypeArray);
}
}
Также было бы полезно знать, что каждый элемент является строкой из таблицы с несколькими столбцами.
до сих пор, как я делаю, и это работает:
<?php $queryPostType = mysql_query($getPostType) or die("Could Not Connect: ".mysql_error()); ?>
<?php $postTypeArray = mysql_fetch_assoc($queryPostType); ?>
<?php do{ ?>
<?php if($postTypeArray['category'] == 7){ ?>
<article>
<h3><strong><?php echo $postTypeArray['title']; ?></strong></h3>
<div><?php echo $postTypeArray['html']; ?></div>
</article>
<?php } ?>
<?php }while($postTypeArray = mysql_fetch_assoc($queryPostType)) ?>
Где «категория» — это идентификатор категории, «заголовок» — это заголовок сообщения, а «html» — фактическое содержание сообщения.
Но единственная проблема в том, что я делаю это снова и снова и делаю запрос для каждого идентификатора категории. В некоторых местах я делаю целых 12 запросов, но я хотел бы сделать только один запрос, закрыть свое соединение, пройтись по данным, поместить их в отдельные массивы и распределить дату оттуда.
Еще раз спасибо за любую помощь.
Изменить от этого:
if($postTypeArray['category']===7){
echo $key;
echo $value;
$queryPostType1[]=$postTypeArray[$value];
//array_push($queryPostType1, $postTypeArray);
}
к этому:
if($value['category']===7){
echo $key;
echo $value;
$queryPostType1[]=$value;
//array_push($queryPostType1, $postTypeArray);
}
В качестве альтернативы, вы можете использовать $postTypeArray[$key]
взаимозаменяемо с $value
До тех пор, пока вы находитесь в цикле foreach
Вам нужно запустить цикл while для поиска следующей записи, как показано ниже.
$getPostType = "SELECT * FROM myTable";
$queryPostType = mysql_query($getPostType) or die("Could Not Connect: ".mysql_error());
$queryPostType1 = array();
while($postTypeArray = mysql_fetch_assoc($queryPostType)){
echo $key;
echo $value;
if($postTypeArray['category']===7){
echo $key;
echo $value;
$queryPostType1[]=$postTypeArray[$value];
}
}
проверьте этот URL для справки:http://www.w3schools.com/php/php_mysql_select.asp
Попробуй это :
$queryPostType1[$key]= $value;
код
$queryPostType1 = array(); //declare the array
$getPostType = "SELECT * FROM myTable";
$queryPostType = mysql_query($getPostType) or die("Could Not Connect: ".mysql_error());
$postTypeArray = mysql_fetch_assoc($queryPostType);
$queryPostType1 = array();
foreach ($postTypeArray as $key => $value) {
echo $key;
echo $value;
if($postTypeArray['category']===7){
echo $key;
echo $value;
$queryPostType1[$key]= $value; //add value to the array
//array_push($queryPostType1, $postTypeArray);
}
}