Mi problema creo que reside aqui
Código PHP:
$ids = trim($GLOBALS['id_devueltos'], ',');
$CON_EXTRAS = "SELECT c.ID,e.NOMBRE,e.ID,e.TIPO FROM comidas c INNER JOIN extra e ON e.ID_COMIDA = c.ID WHERE c.ID IN (?)";
$CONSULTA_EXTRAS = mysqli_stmt_init($conexion);
$ids_extras = "";
$contador = 0;
if($stmt = mysqli_stmt_prepare($CONSULTA_EXTRAS,$CON_EXTRAS)){
mysqli_stmt_bind_param($CONSULTA_EXTRAS,'s',$ids);
mysqli_stmt_execute($CONSULTA_EXTRAS);
$RES_ID_COM = "";
$REST_NOM_EXT = "";
$RES_ID_EXT = "";
$RES_TIPO_EXT = "";
mysqli_stmt_bind_result($CONSULTA_EXTRAS,$RES_ID_COM,$REST_NOM_EXT,$RES_ID_EXT,$RES_TIPO_EXT);
while(mysqli_stmt_fetch($CONSULTA_EXTRAS)){
$GLOBALS['id_extras'] .= $RES_ID_EXT . ',';
++$contador;
echo("EXTRAS.insert({id_comida:'$RES_ID_COM',nombre:'$REST_NOM_EXT',id_subextra:'$RES_ID_EXT',tipo:'$RES_TIPO_EXT'});");
};
mysqli_stmt_close($CONSULTA_EXTRAS);
};
Básicamente lo que estoy es reescribiendo un proyecto para utilizar mysqli y consultas parametrizadas, ya que lo tenia en mysql puro y duro y funcionaba sin problemas pero ahora con las consultas parametrizadas, todo se me esta volviendo mas grande y un poco mas confuso, aparte eso de crear 1 variable por valor devuelto pues no acabo de verlo lo mas optimo, pero en fin...
Mi problema es que esa consulta ( la he probado por separado ), que debe devolver resultados, no me devuelve nada y no entiendo porque, no es la unica consulta que tengo en esa pagina y la única diferencia que encuentro a esta consulta con respecto a las otras es el uso de los paréntesis.
¿ Hay que escapar esos parentesis de alguna manera ? ¿ sera otro el fallo ?
He probado a poner la consulta de esta forma
$CON_EXTRAS = "SELECT c.ID,e.NOMBRE,e.ID,e.TIPO FROM comidas c INNER JOIN extra e ON e.ID_COMIDA = c.ID WHERE c.ID IN ('?')";
Es decir poniendo comillas simples para hacer ver a la base de datos que es un string como seguramente hubiese hecho en el pasado, pero lo único que consigo de este modo es un error.
¿ Alguien puede iluminarme ?
Muchas gracias.