AFAICS никто еще не разместил соответствующую часть документации :
Значения параметров по умолчанию оцениваются при выполнении определения функции. Это означает, что выражение оценивается один раз, когда функция определена, и что для каждого вызова используется одно и то же «предварительно вычисленное» значение. Это особенно важно для понимания, когда параметр по умолчанию является изменяемым объектом, таким как список или словарь: если функция изменяет объект (например, добавив элемент в список), значение по умолчанию изменяется. Обычно это не то, что было предназначено. Способ вокруг этого - использовать None как значение по умолчанию и явно проверить его в теле функции [...]
Ты очень близко. Вам просто нужно получить доступ к $savedResult[0]
, чтобы получить ваш столбец, и добавить его на $savedArray
while($savedResult = mysql_fetch_array($savedQuery)) {
$savedArray[] = $savedResult[0];
}
Когда вы сначала получаете результаты mysql, вы можете объединить содержимое обоих циклов while в один:
while($result = mysql_fetch_array($savedQuery)) {
$savedArray[] = $result[0]; // or $result['can_id']
}
попробуйте
$savedArray[] = $savedResult['can_id'];
вместо
$savedArray[] = $savedResult;
while($savedResult = mysql_fetch_array($savedQuery)) {
$savedArray[] = $savedResult['can_id'];
}
Вот метод с mysqli и no loop. Он берет весь ваш код до двух строк.
$r = mysqli_query($c,'SELECT can_id FROM savedsearches WHERE user_id = "'.mysql_real_escape_string($user_id).'" AND insertTime >= "'.$lastSigTime.'"');
$savedArray = array_column(mysqli_fetch_all($r,MYSQLI_ASSOC),"can_id");