Ayuda MVC con PHP y CodeIgniter

naye

Hola Soy nueva en ORM con PHP, CodeIgniter y Datamapper

Mi problema es con la sentencia where parametro1 y parametro2
no puedo hacer que cumpl con las dos condiciones solo la primera

En este ejemplo si lo hace
public function busca_usuario_campus_casos(/$datos_campus/) {

$datos_campus = 'Campus Campus';

	$usu = new Usuarios();
	$usu -> where('nombre_campus', $datos_campus);
	$usu -> where('enabled', "1")-> get();
	return $usu;
	//print_r($usu);
}

Pero este donde tiene que tener la carrera y el grado solo la vista carga los que tienen la carrera y todos los grupos

public function busca_alumno_carrera_grado($carrera,$grado) {

	//$nombre_carrera = $this -> input -> post('nombre_carrera');
	//print_r($nombre_carrera);
	//$nombre_grado = $this -> input -> post('nombre_grado');
	//print_r($nombre_grado);
	echo $carrera;
	$datos_carrera= $carrera;
	echo $grado;
	$datos_grado=$grado;
	//$consulta['dato']="'nombre_carrera' =  $datos_carrera AND 'nombre_carrera' = $datos_grado ";
	
	$u = new Alumno();
	//return $u -> where('nombre_carrera', $datos_carrera) -> get();
	//echo $u;
	
	if ($u -> where('nombre_carrera', $carrera  ) ->get()){
				
		return $u;
	
	}else{
return FALSE;
	}
	/*$u = new Alumno();
	$u -> where('nombre_carrera', '$datos_carrera');
	$u -> where('nombre_grado', $datos_grado)-> get();
	return $u;*/
	
}
Amazon

#1 [ code][ /code]

$datos_campus = 'Campus Campus';

$usu = new Usuarios();
$usu -> where('nombre_campus', $datos_campus);
$usu -> where('enabled', "1"-> get();
return $usu;
//print_r($usu);
}
public function busca_alumno_carrera_grado($carrera,$grado) {

//$nombre_carrera = $this -> input -> post('nombre_carrera';
//print_r($nombre_carrera);
//$nombre_grado = $this -> input -> post('nombre_grado';
//print_r($nombre_grado);
echo $carrera;
$datos_carrera= $carrera;
echo $grado;
$datos_grado=$grado;
//$consulta['dato']="'nombre_carrera' = $datos_carrera AND 'nombre_carrera' = $datos_grado ";

$u = new Alumno();
//return $u -> where('nombre_carrera', $datos_carrera) -> get();
//echo $u;

if ($u -> where('nombre_carrera', $carrera ) ->get()){

return $u;

}else{
return FALSE;
}
/*$u = new Alumno();
$u -> where('nombre_carrera', '$datos_carrera';
$u -> where('nombre_grado', $datos_grado)-> get();
return $u;*/

}
BLZKZ

#1 estás usando el ORM este http://datamapper.wanwizard.eu/index.html ??

De ser así consulta el manual

Básicamente cuando haces

->where dentro del paréntesis le tienes que pasar un array con "key" => "valor".

La key es el campo a buscar y el valor es el valor de dicho campo, en este caso

$u->where('nombre_carrera' => $carrera )->get()
naye

estoy en eso y mira ya cheque otra forma

$u = new Alumno();
		$u ->group_start() -> where ('nombre_carrera', $carrera) ->group_start() -> where( 'nombre_grado' , $grado) -> get()
         -> group_end ()
 
 ->group_end ();
 
$u-> get();		
return $u;

Pero aun me sale un error

Un error de base de datos ocurrió

Número de error: 1064

Usted tiene un error en su sintaxis SQL, consulte el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a usar cerca'' en la línea 6

SELECT * FROM (`Alumnos`) WHERE (`Alumnos`. `Nombre_carrera` = 'MEDICINA' AND (`Alumnos`. `Nombre_grado` = 'Segundo'

Nombre de archivo: / var / www / html / zeus.xochicalco.edu.mx / SalI / libraries / datamapper.php

Número de línea: 1328
1 respuesta
naye

Eso del key ya lo hice para los combos y para las tablas de resultados, lo que no puedo hacer es que salgan los datos que quiero con la carrera y el grupo

naye

muchas gracias y sigo en esto

BLZKZ

#4 te lo vuelvo a decir, esto que pones

 where( 'nombre_grado' , $grado) -> get()

Está mal, en where tienes que pasar un array como único parámetro, no dos parámetros que te apetezcan

Sería:

$u->where('campo1' => 'valor1', 'campo2' => 'valor2')->get()
naye

ok, me sentí regañada

pero ya lo hice

$u -> where ('nombre_carrera'=> $carrera , 'nombre_grado' => $grado) -> get();

Si lo pongo como me dices me marca error

$u -> where('nombre_carrera' -> $datos_carrera,'nombre_grado'-> $datos_grado) -> get();

Si lo pongo asi me manda todos los que tienen la carrera y el grado no le importa me manda tosos

1 respuesta
BLZKZ

#8 mmm me falta una coma creo (es que lo estoy haciendo al vuelo, no lo voy probando) y array al princio XD

$u->where(array('campo1' => 'valor1', 'campo2' => 'valor2',))->get()

creo que también funcionaría

$u->where(['campo1' => 'valor1', 'campo2' => 'valor2',])->get()
1 respuesta
naye

Ya me dio pena contigo BLZKZ

$u -> where (array('nombre_carrera'=> $carrera , 'nombre_grado' => $grado)) ->get();

No sale nada y ya lo había hecho también :(

naye

De esta otra forma sale menos jijiji

$u -> where (array(['nombre_carrera'=> $carrera , 'nombre_grado' => $grado])) ->get();

Perdon, pero si soy nuevecita

Li3cht

#9

2
naye

ok, ya entendí, no lo sabia, ya no lo haré

Gantorys

->where(campo1, valor1)->where(campo2, valor2)... o pasas un array asociativo

$array = array('campo1' => valor1, 'campo2' => valor2...)

naye

Muchas gracias a todos

ya pude por fin

$u = new Alumno();
	return $u ->group_start() -> where ('nombre_carrera', $carrera) ->group_start() -> where( 'nombre_grado' , $grado)-> group_end() -> group_end()->get();
 //echo $u;
 

Usuarios habituales

  • naye
  • Gantorys
  • Li3cht
  • BLZKZ
  • Amazon