Я пытаюсь взять пользователей после публикации и отобразить их вместе с публикацией в качестве своей новостной ленты. У меня установлен базовый код, однако, когда я прошу включить пользователей в список, разделенный запятыми, он отображается в виде массива. Например, я напечатал код, а затем он повторил «Массив, Массив, пользователь». Есть ли способ для массива фактически отображать пользователя?
<?php
$sql = "SELECT * FROM follow WHERE follow_from='$user'";
$result = mysql_query($sql);
В то время как цикл я думаю, у меня проблемы.
while(($row = mysql_fetch_assoc($result)) !== false) {
$following[] = array(
'whofollow' => $row['follow_to'],
);
}if(!empty($following)) {
array_push($following, $user);
}else{
$following = array($user);
}
$accepted_follow = implode("','", $following);
Как вы можете видеть, я пытался увидеть, что будет печататься, и это было «Массив, массив, пользователь». У этого пользователя есть два друга, поэтому я знал, что это правильно.
print_r($accepted_follow);
Ниже находится пост или сама новостная лента. Ниже пользователь увидит свой пост, а также тех, за кем он следит.
$get_photos = mysql_query("SELECT * FROM photos WHERE username IN ('$accepted_follow') AND removed ='no' ORDER BY id DESC");
$numrows = mysql_num_rows($get_photos);
while($row = mysql_fetch_assoc($get_photos)) {
$id = $row['id'];
$uid = $row['uid'];
$username = $row['username'];
$date_posted = $row['date_posted'];
$description = $row['description'];
$image_url = $row['image_url'];
?>
Если есть какой-нибудь способ, где я мог бы выбрать следующий пост и пост пользователей, это было бы очень полезно!
<?php
$sql = "SELECT * FROM follow WHERE follow_from='$user'";
$result = mysql_query($sql);
while(($row = mysql_fetch_assoc($result)) !== false) {
$following = array('whofollow' => $row['follow_to'],);
foreach ($following as $item) {
if(is_array($item)){
foreach ($item as $subItem) {
$printThis2[] = $subItem;
}
}else {
$following[] = $item;
}
array_push($following, $user);
$implodedString = implode(",",$following);
}
print_r($implodedString);
}$get_photos = mysql_query("SELECT * FROM photos WHERE username IN ('$accepted_follow') AND removed ='no' ORDER BY id DESC");
$numrows = mysql_num_rows($get_photos);
while($row = mysql_fetch_assoc($get_photos)) {
$id = $row['id'];
$uid = $row['uid'];
$username = $row['username'];
$date_posted = $row['date_posted'];
$description = $row['description'];
$image_url = $row['image_url'];
?>
Это печать
Array, Array, пользователь
так как $accepted_follow = implode("','", $following);
предназначен только для использования, когда $following
это один одномерный массив, а не когда это многомерный массив, содержащий то, что я предполагаю, является User
объект.
Просто var_dump
должен подтвердить, что $following
на самом деле содержит, и тогда вы можете использовать foreach
петля или implode
это одно, чтобы отформатировать это красиво.
Например, с этим массивом:
$array = array(
array("Pear","Mango"),
array("Watermelon","Orange"),
"Goat");
var_dump($array)
будет повторять следующее:
Для образца $array
выше, чтобы распечатать все предметы, я бы использовал:
$printThis = array()
foreach($array as $item){
if(is_array($item)){
foreach($item as $subItem){
$printThis[] = $subItem; //since we know it's at most 2 dimensional. If we aren't sure how deep the array could be, a recursive function may be more useful.
}
} else{
$printThis[] = $item;
}
}
$implodedString = implode(",",$printThis);
и это должно напечатать
Груша, Манго, Арбуз, Апельсин, Коза
Других решений пока нет …