Foros del Web » Programando para Internet » PHP »

Novato: Ayuda con una consulta entre SQL y PHP

Estas en el tema de Novato: Ayuda con una consulta entre SQL y PHP en el foro de PHP en Foros del Web. EStoy ya bastante desesperado, porque algo tan sencillo me esta dando muchos problemas. El problema es que cuando uso la funcion mysql_query me devuelve un ...
  #1 (permalink)  
Antiguo 29/04/2006, 11:17
 
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 18 años
Puntos: 0
Novato: Ayuda con una consulta entre SQL y PHP

EStoy ya bastante desesperado, porque algo tan sencillo me esta dando muchos problemas.

El problema es que cuando uso la funcion mysql_query me devuelve un error de base de datos no seleccionada, y si uso mysql_db_query lo que me devuelve no me sirve para nada.

Asi que no sé que hacer, en el mysql tengo instaladas 3 bases de datos, y solo quiero acceder a una.

El código es el siguiente, me puede decir alquien que estoy haciendo mal y que puedo hacer para solucionarlo? muchisimas gracias por adelantado.

Código:
include ("../prc_config.php");

function nuevo_cine()
{
//COPIAR FICHERO
$nue_nombre = ucwords($_REQUEST['nombre']);
$nue_ubi = ucwords ($_REQUEST['ubicacion']);
$i = "insert into prc_cine (nombre, ubicacion, plano) values ('" . $nue_nombre . "','" . $nue_ubi . "','" . $_REQUEST['plano'] . "')";
$id_c = "select id from prc_cine where nombre = '" . $nue_nombre ."'"; //comprobamos que no este el nombre
//$res = mysql_db_query($db,$id_c,$cdb);
$res = mysql_query($id_c,$cdb);
if (!$res)
	{
		echo "<html>
			<head>
		<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
			<link href=\"../estilo.css\" rel=\"stylesheet\" type=\"text/css\">
			</head>
			<body>
				<table width=\"800\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"3\" class=\"tableb\">
				<tr><td>
				<h3 align=\"center\">La operaciónnnn no ha podido ser terminada por el siguiente error:" . mysql_error($cdb) . "</h3>
				</td></tr></table>
			</body>
		</html>";
		exit();
	}
else{
while ($id_f = mysql_fetch_array ($res, MYSQL_ASSOC)){
	if ($id_f['id'] > 0){$cont = $cont + 1;}
}
if ($cont > 0){

	echo "<html>
			<head>
		<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
			<link href=\"../estilo.css\" rel=\"stylesheet\" type=\"text/css\">
			</head>
			<body>
				<table width=\"800\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"3\" class=\"tableb\">
				<tr><td>
				<h3 align=\"center\">El nombre introducido ya existe.</h3>
				</td></tr></table>
			</body>
		</html>";
		//exit();
		}
elseif (!$result = mysql_db_query($db,$i,$cdb)) 
{
	echo "<html>
			<head>
			<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
			<link href=\"../estilo.css\" rel=\"stylesheet\" type=\"text/css\">
			</head>
			<body>
				<table width=\"800\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"3\" class=\"tableb\">
				<tr><td>
				<h3 align=\"center\">La operación no ha podido ser terminada por el siguiente error:" . mysql_error($cdb) . "</h3>
				</td></tr></table>
			</body>
		</html>";
		//exit();
}
else
{
	$var = $id_f['id'];
	$s = crear_sala($var);
	if ($s == 1){
		echo "<html>
			<head>
			<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
			<link href=\"../estilo.css\" rel=\"stylesheet\" type=\"text/css\">
			</head>
			<body>
				<table width=\"800\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"3\" class=\"tableb\">
				<tr><td>
				<h3 align=\"center\">La operación se ha creado con éxito, se creó el cine con sus 9 salas y sus butacas.</h3>
				</td></tr></table>
			</body>
		</html>";
	}
	
}	
	
}

}
  #2 (permalink)  
Antiguo 29/04/2006, 13:02
 
Fecha de Ingreso: enero-2005
Mensajes: 115
Antigüedad: 19 años, 3 meses
Puntos: 1
Sonrisa

Create una funcion de conexion a la bd que quieras en un archivo por ejemplo conexionBD.php con este codigo:

Código PHP:
 //ejemplo
function conexionBD(){
        
$link=mysql_connect("xxx.xxx.xxx.xxx","user_name","contrasena");
        if(
$link && mysql_select_db("nombre_bd"))
            return 
$link//Devuelve el link si todo fue bien
        
return (false);

Luego en cada pagina en la que quieras hacer alguna sentencia SQL colocas al incio del todo, antes de nada esto:

Código PHP:
 //es como un include, pones el path relativo donde este el fichero, por ejemplo:
require_once('./conexionBD.php'); 
Ahora un ejemplo de como hacer una consulta (SELECT) a la bd especificada en el include:
Código PHP:
 /ejemplo select
require_once('./conexionBD.php');
//.... por aqui hay mas codigo .... 
$link conexionBD() or exit('No se puede establecer una conexion con la base de datos<br>');
$query 'SELECT * FROM listas WHERE nombre='$_REQUEST['nombrecito'];
$result mysql_query($query,$link) or die('No se puede establecer una conexion con la base de datos.<br>');
if(
mysql_num_rows($result)){//si se han devuelto filas seguimos ..
    
while ($row = @mysql_fetch_array($result)){ //recorremos las tuplas recogidas de la bd
      //aqui puedes trabajar ahora con $row['nombre_columna1'] o bien $row[0], $row[1] ...
    
}
}

mysql_free_result($result);
mysql_close($link); 
Ahora un ejemplo de insert (equivalente tmb si haces un update, o delete):
Código PHP:
 /ejemplo insert
require_once('./conexionBD.php');
//.... por aqui hay mas codigo .... 
$link conexionBD() or exit('No se puede establecer una conexion con la base de datos<br>');
$query "insert into prc_cine (nombre, ubicacion, plano) values ('" $nue_nombre "','" $nue_ubi "','" $_REQUEST['plano'] . "')"
if(!mysql_query($query,$link){
 echo 
"No se puede establecer una conexion con la base de datos.<br>";
else
  echo 
"Todo correcto";

mysql_free_result($result);
mysql_close($link); 
En el primer ejemplo he trabajado con comillas simples, en el segundo con comillas dobles (como tu), espero que te sirva de guia para trabajar con mysql.
__________________
SaRvErOk :ojotes:
  #3 (permalink)  
Antiguo 29/04/2006, 13:33
 
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 18 años
Puntos: 0
Antes de nada muchas gracias.

He cambiado unas cosas como me indicas, y ahora me devuelve el siguiente error cuando se intenta conectar, lo unico que le tengo puesto un die

Warning: mysql_connect(): Access denied for user 'apache'@'localhost' (using password: NO) in /home/morpheux/domains/clubdelst.com/public_html/prac/prc_config.php on line 7

La verdad que esta no me la esperaba, que significa este error? he creado la base de datos como otras veces, las otras ven pero esta no, las otras se crearon para nuke y coppermine.

Un saludo y gracias
  #4 (permalink)  
Antiguo 29/04/2006, 13:56
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
ese error significa que has configurado mal tu conexion, y ademas no has puesto ninguna password,

prueba con user root y ninguna password, o si tienes esto en tu hosting ellos mismos te proveeran de los datos necessarios para que te conectes.
  #5 (permalink)  
Antiguo 29/04/2006, 14:57
 
Fecha de Ingreso: enero-2005
Mensajes: 115
Antigüedad: 19 años, 3 meses
Puntos: 1
De acuerdo

Si es un error de configuracion, parece que estas intentado entrar con la contraseña en mysql_connect("xxx.xxx.xxx.xxx","user_name","contr asena") cuando realmente no tienes contraseña puesta en la BD : mysql_connect("127.0.0.1","root","");
127.0.0.1 == localhost (eso si lo tienes cofigurado el servidor como localhost)
y root si es el usuario por defecto de mysql, creo recordar!!
si no tienes contraseña deja el campo de la contraseña en blanco ""
Deberia funcionar si no hay nada mas mal instalado
__________________
SaRvErOk :ojotes:
  #6 (permalink)  
Antiguo 29/04/2006, 18:55
 
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 18 años
Puntos: 0
Nada he hecho todo eso y sigue con el mismo error, lo que voy a hacer, es montar el servidor en casa con el apache el php y mysql, me dejo del hosting y volvemos a empezar de 0, pq me tiene cansadico el tema.

Un saludo y muchisimas muchisimas gracias
  #7 (permalink)  
Antiguo 01/05/2006, 08:23
 
Fecha de Ingreso: abril-2006
Mensajes: 3
Antigüedad: 18 años
Puntos: 0
Pero prueba a crear un usuario nuevo, con contraseña, y a ver si va.
  #8 (permalink)  
Antiguo 01/05/2006, 15:47
 
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 18 años
Puntos: 0
Al fina monte todo el tinglado en casa, en local, pero por curiosidad haré eso que me propones.

Por cierto el codigo que pusistes me será de gran ayuda, gracias
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 09:55.