Hola a todos podrian decirme como puedo hacer funcionar este codigo
Código PHP:
function datos($conexion, $consulta, $datos, $informacion, $contar_registros, $mostrar_datos, $mostrar_datos_numero){
// Create connection
require($_SERVER['DOCUMENT_ROOT'].$conexion);
$SQL_datos_conexion = new mysqli($db_host, $db_user, $db_pass, $db_name);
$stmt = $SQL_datos_conexion->prepare($consulta);
$numero_datos = count($datos);
if($numero_datos>=2){
//Saber si es string o numerico(int)
$type = '';
foreach ($datos as $value) {
$type .= is_numeric($value) ? 'i' : 's';
}
if($numero_datos==2){
$stmt->bind_param($type, $datos[0], $datos[1]);
}elseif($numero_datos==3){
$stmt->bind_param($type, $datos[0], $datos[1], $datos[2]);
}elseif($numero_datos==6){
$stmt->bind_param($type, $datos[0], $datos[1], $datos[2], $datos[3], $datos[4], $datos[5]);
}elseif($numero_datos==8){
$stmt->bind_param($type, $datos[0], $datos[1], $datos[2], $datos[3], $datos[4], $datos[5], $datos[6], $datos[7]);
}elseif($numero_datos==10){
$stmt->bind_param($type, $datos[0], $datos[1], $datos[2], $datos[3], $datos[4], $datos[5], $datos[6], $datos[7], $datos[8], $datos[9]);
}elseif($numero_datos==12){
$stmt->bind_param($type, $datos[0], $datos[1], $datos[2], $datos[3], $datos[4], $datos[5], $datos[6], $datos[7], $datos[8], $datos[9], $datos[10], $datos[11]);
}elseif($numero_datos==13){
$stmt->bind_param($type, $datos[0], $datos[1], $datos[2], $datos[3], $datos[4], $datos[5], $datos[6], $datos[7], $datos[8], $datos[9], $datos[10], $datos[11], $datos[12]);
}elseif($numero_datos==14){
$stmt->bind_param($type, $datos[0], $datos[1], $datos[2], $datos[3], $datos[4], $datos[5], $datos[6], $datos[7], $datos[8], $datos[9], $datos[10], $datos[11], $datos[12], $datos[13]);
}
}elseif($numero_datos==1){
$stmt->bind_param('s', $datos);
}
$stmt->execute();
//Array para retornar informacion
$valores_retorno=array();
//Numero de celdas afectadas e ID del registro en caso de que sea un insert into el numero de celdas afectadas tambien funciona en el update
if($informacion==true){
$n_celdas=$stmt->affected_rows;
$id_nuevo_registro=$stmt->insert_id;
array_push($valores_retorno, $n_celdas, $id_nuevo_registro);
}
//Contar registros, funciona en select
if($contar_registros==true){
$stmt->store_result();
$numero_registros=$stmt->num_rows;
array_push($valores_retorno, $numero_registros);
}
//Mostrar los datos modificados (update)
if($mostrar_datos==true){
//$stmt->store_result();
//$num_of_rows = $stmt->num_rows;
if($mostrar_datos_numero==1){
$stmt->bind_result($mostrar_info);
}elseif($mostrar_datos_numero==2){
$stmt->bind_result($mostrar_info[0], $mostrar_info[1]);
}elseif($mostrar_datos_numero==5){
$stmt->bind_result($mostrar_info[0], $mostrar_info[1], $mostrar_info[2], $mostrar_info[3], $mostrar_info[4]);
}elseif($mostrar_datos_numero==7){
$stmt->bind_result($mostrar_info[0], $mostrar_info[1], $mostrar_info[2], $mostrar_info[3], $mostrar_info[4], $mostrar_info[5], $mostrar_info[6]);
}
while ($stmt->fetch()) {
if(!is_array($mostrar_info)){
array_push($valores_retorno, $mostrar_info);
}else{
for ($i=0; $i<$mostrar_datos_numero; $i++) {
array_push($valores_retorno, $mostrar_info[$i]);
}
}
}
$stmt->free_result();
}
//Si no hay valoresa retornar eliminar la variable
if(empty($valores_retorno)){
unset($valores_retorno);
}else{
return $valores_retorno;
}
$stmt->close();
$SQL_datos_conexion->close();
}
En consulta iria un codigo tipo select in pero solo coje el primer parametro, por ejemplo si quiero que me muestre varias ciudades en las que vivio varios usuarios pongo algo como:
Código:
SELECT `ciudades` FROM `tabla` WHERE `id_user` IN(3,5,9)
El problema es que solo me muestra las ciudades del usuario que tiene el ID 3
Gracias