Я пытаюсь получить данные с mulyiple значением с оператором Mysql IN, но проблема, которую я получаю во много (,,).
Вот мой запрос:
$get_id = "select rel_blog from pages";
$resu = mysql_query($get_id);
$p_id="";
$rel_b="";
$i = 1;
while ($page_id = mysql_fetch_array($resu)){
$p_id.= $page_id['page_id'];
$rel_b.= $page_id['rel_blog'];
}
$p_id."<br>";
echo $rel_b."<br>";
echo $getblog = "SELECT * FROM pages WHERE rel_blog IN ($rel_b) order by add_date desc limit 7";
Выход Ouery Как это, это неправильная форма, поэтому, пожалуйста, помогите мне.
SELECT * FROM pages WHERE rel_blog IN (, 114,93,126108default ,, default ,, default, default ,, default, default ,,,, default, default ,, default,, по умолчанию ,,,,,,,,,,,,, 123,145,144,148,81,107default ,,, по умолчанию ,,, 145,138,118default ,,, по умолчанию ,,,, по умолчанию ,,,, по умолчанию ,,,, по умолчанию ,, 118default ,, по умолчанию ,,,, умолчанию ,,, ,, по умолчанию, по умолчанию ,,,, по умолчанию ,,,,, по умолчанию, по умолчанию ,,, по умолчанию ,,, ,,,, по умолчанию, по умолчанию ,,,, по умолчанию ,,, по умолчанию ,,,, 123,122,125,113default ,, ,, по умолчанию по умолчанию, 124,145140default ,,,,, ,, по умолчанию ,,,, по умолчанию ,, ,, по умолчанию по умолчанию по умолчанию ,, ,, по умолчанию, по умолчанию ,, по умолчанию ,, ,, по умолчанию по умолчанию, по умолчанию ,,,, по умолчанию ,,, по умолчанию ,, по умолчанию ,,, по умолчанию ,, умолчанию ,, 137default ,,,, по умолчанию ,, по умолчанию, , по умолчанию ,,, по умолчанию ,,,,, по умолчанию ,,,, 82,83default ,,, по умолчанию ,, ,, по умолчанию по умолчанию, , по умолчанию ,, по умолчанию ,, по умолчанию ,, по умолчанию ,, по умолчанию ,, по умолчанию ,, по умолчанию ,, по умолчанию ,, по умолчанию ,, ,, по умолчанию по умолчанию, ,, по умолчанию ,,, по умолчанию ,,, по умолчанию ,, по умолчанию ,,, по умолчанию ,,, по умолчанию ,, по умолчанию ,, по умолчанию, по умолчанию, по умолчанию, по умолчанию ,,,, по умолчанию, , по умолчанию, по умолчанию ,, ,, по умолчанию по умолчанию по умолчанию ,, ,,, по умолчанию ,, по умолчанию ,,, по умолчанию ,,,, умолчанию ,, по умолчанию ,,, по умолчанию ,,, по умолчанию ,,,, по умолчанию ,,, по умолчанию ,,,, по умолчанию, по умолчанию, по умолчанию ,,, по умолчанию,, по умолчанию ,, ,, по умолчанию по умолчанию ,, по умолчанию, 114, по умолчанию ,,, 117,116default ,,, по умолчанию ,, ,, 117,116default по умолчанию ,, по умолчанию ,,, по умолчанию ,, по умолчанию ,,, по умолчанию ,, по умолчанию ,, по умолчанию, по умолчанию ,,, по умолчанию ,,, по умолчанию ,,, 108default, ,, 118,129,121,143,80,82,81,148,117,146,107,88,118,82,80,81,148,143,123,118,107,142,116,110,128,127,111,109,125,113,123,118,85,118,128,109,126,93,114,82,142,108,111,90,113,123,144,148,108,107,142,116,115,110,128,127,113,118,144,146,80,148,107,143,135,125,143,110,115,118,132,146,80,123,81,148,107,116,108,109,125,135,113,123,144,118,116,108,127,147,125,123,144,129,107,142,112,116,135,113,123,144,132,118,107,85,123,144,118,82,148,107,123,132,146,148, 107,108,122,89,136,146,80,81,117,148,142,107,110,147,119,82,80,145,129,146,80,148,107,111,109,125,113,123,118,148,81,107,131,115,109,121,125,135,113,123,144,107,131,126,93,141,114,124,139,113,91,144,118,81,117,148,107,142,115,143,135,91,118,142,116,87,143,140,123,144,132,145,129,146,82,80,117,91,118,148,137,113,141,93,143,136,123,144,146,82,118,148,85,112,108,127,122,87,143,141,91,144,146,80,82,81,117,148,107,115,109,91,129,146, 82,80,117,148,81,142,107,110,130,138,89,126,113, по умолчанию, по умолчанию, 118,146,82,81,148,107,142,115,109,126, по умолчанию, 123,144,145,80,146,82,81,117,142,128,138,135,93,140,123,144,145,132,82,80,117,83,142,130,140,145,129,82,80,81,108,111,138,89,143,125,145,123,118,82,80,81,117, 88,112,108,147,139,119,140,123,144,118,80,82,81,142,107,85,108,115,114,144,118,129,146,80,81,83,120,148,107,142,128,127,110,115,91,123,145,82,117,146,81,80,148,82,80,117,81,148,83,120,107,142,88,131,118,129,146,80,117,107,83,88,142,130,89,125,139,134,113,145,144,118,132,123,82,80,146,81,148,83,123, 9 1,137,140,134,139,113,141,124,93140,150,150) order by add_date desc limit 7
На самом деле я не могу понять, как вы получаете хотя бы одну запятую... Вот как вы можете попробовать.
$get_id = "select rel_blog,page_id from pages";
$resu = mysql_query($get_id);
$p_id="";
$rel_b="";
$i = 1;
while ($page_id = mysql_fetch_array($resu)){
$p_id.= $page_id['page_id'];
if($page_id['rel_blog']!=="" && $page_id['rel_blog']==="default") {
$rel_b.= $page_id['rel_blog'] .",";
}
}
$p_id."<br>";
$rel_b = substr($rel_b,0,-1); // get rid of the last comma
echo $rel_b."<br>";
echo $getblog = "SELECT * FROM pages WHERE rel_blog IN ($rel_b) order by add_date desc limit 7";
Вы можете сделать это перед запросом. $rel_b = preg_replace('/,+/', ',', trim($rel_b, ','));
Это позволит удалить повторяющиеся запятые, а также запятые от начала и конца строки.
Попробуйте использовать implode()
:
$get_id = "select rel_blog from pages";
$resu = mysql_query($get_id);
$p_id = array();
$rel_b = array();
$i = 1;
while ($page_id = mysql_fetch_array($resu)){
$p_id[] = $page_id['page_id'];
$rel_b[] = $page_id['rel_blog'];
}
$p_id = implode(',', $p_id);
$rel_b = implode(',', rel_b);
echo $getblog = "SELECT * FROM pages WHERE rel_blog IN ($rel_b) order by add_date desc limit 7";