Foros del Web » Programando para Internet » PHP »

no puedo seleccionar la base de datos

Estas en el tema de no puedo seleccionar la base de datos en el foro de PHP en Foros del Web. hola,hice la conexion en la clase mysql,cuando lo probe me tira el error de que no selecciona la base de datos..cuando guardo los datos me ...
  #1 (permalink)  
Antiguo 29/09/2015, 22:45
 
Fecha de Ingreso: julio-2015
Mensajes: 13
Antigüedad: 4 años, 6 meses
Puntos: 0
no puedo seleccionar la base de datos

hola,hice la conexion en la clase mysql,cuando lo probe me tira el error de que no selecciona la base de datos..cuando guardo los datos me dice el siguiente error.
La linea 23 corresponde a la parte del codigo de la clase mysql if(mysql_select_db($this->_bd,$conexion)){

Cita:
SCREAM: Error suppression ignored for
( ! ) Notice: Undefined variable: conexion in C:\wamp\www\domingo27\mysql.php on line 23
Call Stack
# Time Memory Function Location
1 0.0011 252928 {main}( ) ..\pagina2.php:0
2 0.0021 265584 mysql->conectar( ) ..\pagina2.php:11


SCREAM: Error suppression ignored for
( ! ) Warning: mysql_select_db() expects parameter 2 to be resource, null given in C:\wamp\www\domingo27\mysql.php on line 23
Call Stack
# Time Memory Function Location
1 0.0011 252928 {main}( ) ..\pagina2.php:0
2 0.0021 265584 mysql->conectar( ) ..\pagina2.php:11
3 0.0088 272824 mysql_select_db ( ) ..\mysql.php:23
error al seleccionar la base

Cita:
<?php

class mysql
{
private $_servidor;
private $_usuario;
private $_pass;
private $_bd;
private $conexion;

function __construct($servidor,$usuario,$pass,$bd){

$this->_servidor=$servidor;
$this->_usuario=$usuario;
$this->_pass=$pass;
$this->_bd=$bd;
}
function conectar()
{


if($this->conexion=mysql_connect($this->_servidor,$this->_usuario,$this->_pass)){
if(mysql_select_db($this->_bd,$conexion)){
$this->conexion=$conexion; echo "ok";
}else{
echo"error al seleccionar la base";
exit();
}
}else{
echo "error al enlazar el servidor";
exit();
}
}





function insertar($nombre, $mail, $codigocurso)
{
$query="Insert into alumnos (nombre,mail,codigocurso)values ('".$nombre."','".$mail."','".$codigocurso."')";
mysql_query($query);

}

}
?>


Cita:
<html>
<head>
<title>Problema</title>
</head>
<body>
<h1>Alta de Alumnos</h1>
<form action="pagina2.php" method="post">
Ingrese nombre:
<input type="text" name="nombre"><br>
Ingrese mail:
<input type="text" name="mail"><br>
Seleccione el curso:
<select name="codigocurso">
<option value="1">PHP</option>
<option value="2">ASP</option>
<option value="3">JSP</option>
</select>
<br>
<input type="submit" value="Registrar">
</form>
</body>
</html>

Cita:
<html>
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php

include_once("mysql.php");
$mysql=new mysql("localhost","root","","base1");
$mysql->conectar();
$respuesta=$mysql->insertar($_POST['nombre'],$_POST['mail'],$_POST['codigocurso']);

if ( $respuesta==1 ){

echo "El alumno fue dado de alta";

}else{

echo "Error";
}

?>
</body>
</html>
  #2 (permalink)  
Antiguo 29/09/2015, 23:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: no puedo seleccionar la base de datos

Pues el error es bastante claro, dice que no existe la variable $conexion y es correcto: no existe.

¿No será que la variable que buscas sea $this->conexion en su lugar?

O mejor aún:
Código PHP:
Ver original
  1. // MAL
  2. if ($this->conexion=mysql_connect($this->_servidor,$this->_usuario,$this->_pass)) // ...
  3.  
  4. // BIEN
  5. if ($conexion=mysql_connect($this->_servidor,$this->_usuario,$this->_pass)) // ...

Pues es entendible que al validarse el if() entonces $this->conexion tome el valor de $conexion tal cual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/10/2015, 06:56
 
Fecha de Ingreso: julio-2015
Mensajes: 13
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: no puedo seleccionar la base de datos

Gracias,con lo q me dijiste se pudo conectar,pero ahora no me inserta los datos,no puedo darme cuenta q hice mal

<html>
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php

include_once("mysql.php");
$mysql=new mysql("localhost","root","","base1");
$mysql->conectar();
$respuesta=$mysql->insertar($_POST['nombre'],$_POST['mail'],$_POST['codigocurso']);

if ( $respuesta==1 ){

echo "El alumno fue dado de alta";

}else{

echo "Error";
}

?>
</body>
</html>
  #4 (permalink)  
Antiguo 01/10/2015, 08:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: no puedo seleccionar la base de datos

Tu método para insertar jamás hace return de la ejecución de la consulta, ¿así cómo piensas validar el resultado desde fuera?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 01/10/2015, 19:12
 
Fecha de Ingreso: julio-2015
Mensajes: 13
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: no puedo seleccionar la base de datos

hola,disculpa las molestia pero no se como hacer lo del return,si me podrias dar una pequeña explicacion seria genial.estoy recien empezando con php orientado a objetos..

gracias..
  #6 (permalink)  
Antiguo 01/10/2015, 19:45
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 7 años, 3 meses
Puntos: 38
Respuesta: no puedo seleccionar la base de datos

A ver sin ánimo de ofender , pero está muy claro a solución que te están diciendo , no se si sabes que estás mezclando poo con procedimiental, mi consejo o una cosa o la otra.
Una función o método puede devolver algo, mediante la palabra reservada return , así que tal como te han comentado en tu función insertar solo te falta hacer :return $query; porque estas asignando el valor a la var $query pero ahí se queda en la asignación..

Etiquetas: html, mysql, select, sql, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:10.