Foros del Web » Programando para Internet » PHP »

Conexion Servidor, Seleccion BD y consulta Mysql

Estas en el tema de Conexion Servidor, Seleccion BD y consulta Mysql en el foro de PHP en Foros del Web. Hola Estoy intentando hacer una consulta sobre una base de datos pero no hay forma. No me sale ningun error, pero no encuentra nada en ...
  #1 (permalink)  
Antiguo 12/06/2003, 09:59
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 14 años, 6 meses
Puntos: 1
Conexion Servidor, Seleccion BD y consulta Mysql

Hola

Estoy intentando hacer una consulta sobre una base de datos pero no hay forma.

No me sale ningun error, pero no encuentra nada en la base de datos, me dice, como indico en el script si no hay filas afectadas :

¡No se ha encontrado ningún registro!

A pesar de escribir el contenido del campo exactamente como figura en la base de datos...

Adjunto el fichero buscador2.php donde se ejecutan todos los scripts y el formulario a ver si podeis echarme una mano.

Gracias

/*******************FORMULARIO********************/




<Form method="post" action="./PHP/buscador2.php">


<img src="imagenes/Estructura/BuscaEnvertical.jpg">
<input type="text" name="buscar" size="15" maxlength="200"> <br>
<input type="submit" value="Busca">

</form>




/***********************BUSCADOR2.PHP************/


<html>
<body>
<?php

// COMPROBAMOS QUE LA VARIABLE 'BUSCAR' NO ESTA VACIA

if (empty ($_POST['buscar'])){
echo "Debe especificar una cadena a buscar";
echo "<p>Debe especificar una cadena a buscar</p> \n";
echo "<p><a href='../index.htm'>Volver</p> \n";
echo "</html></body> \n";
exit;
}



/******************* Realizamos la conexion con el servidor ********************/



$conexion = mysql_connect("localhost", "root", "aandrea")
or die("<b>Problema en MySQL:</b> Error al conectar con la base de datos");
if (!$conexion) { // COMPROBAMOS QUE LA CONEXION A TENIDO EXITO
echo "No se ha podido conectar con el servidor";
}

/****************Realizamos la conexion con la base de datos en la que queremos actuar *****************/


$basedatos = mysql_select_db('envertical', $conexion)
or die("<b>Problema en MySQL:</b> Error al conectar con la base de datos");
if(!$basedatos) { // COMPROBAMOS QUE SE HA CONECTADO CON LA BASE DA¡E DATOS
echo "No se ha podido conectar con la base de datos";
}

/*************** Consulta SQL ***********************/

$sql = "SELECT * FROM Socueva WHERE nombre LIKE '%{$_POST['buscar']}%'";


/******************* Realizamos la consulta sobre la base de datos *********************/

$consulta = mysql_query($sql)
or die("<b>Problema en MySQL:</b> Error <i>" . mysql_error() .
"</i> en la consulta <i>$sql</i>");
if (!$consulta) {// COMPROBAMOS QUE SE HA PODIDO REALIZAR LA CONSULTA
echo "No se ha podido realizar la consulta";
}
/*****************Comprobamos las filas afectadas por la consulta *****************/

mysql_num_rows($consulta);



/***********Mostramos los resultados por pantalla *************************/

if (mysql_num_rows($consulta) > 0) {
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
echo "<td>id</td>\n";
echo "<td>nombre</td>\n";
echo "</tr> \n";
while ($fila = mysql_num_rows($consulta)) {
echo "<tr> \n";
echo "<td>".$fila["id"]."</td> \n";
echo "<td>".$fila["nombre"]."</td> \n";
echo "</tr> \n";
}

echo "<p><a href='../index.htm'>Volver</p> \n";
echo "</table> \n";
}
else {
echo "<p>¡No se ha encontrado ningún registro!</p>\n";
echo "<p><a href='../index.htm'>Volver</p> \n";
}
?>
</body>
</html>

/********************FIN*******************/


Un saudo

Última edición por Operadormail; 12/06/2003 a las 11:01
  #2 (permalink)  
Antiguo 12/06/2003, 10:31
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
function filas_afectadas() {
return @mysql_num_rows($consulta);

__________________
Manoloweb
  #3 (permalink)  
Antiguo 12/06/2003, 10:45
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 14 años, 6 meses
Puntos: 1
Hola

He cambiado alguna cosa y ahora creo que me ha salido un bucle infinito del que no se como salir...

He cambiadoel codigo de arriba para que veas los cambios.

Un saludo

Última edición por Operadormail; 12/06/2003 a las 11:01
  #4 (permalink)  
Antiguo 12/06/2003, 11:28
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
while ($fila = mysql_fetch_array($consulta)) {


__________________
Manoloweb
  #5 (permalink)  
Antiguo 12/06/2003, 11:38
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 14 años, 6 meses
Puntos: 1
me da error al conectar con la base de datos

Ufff estoy ya un poco quemado...

No me sale nada
  #6 (permalink)  
Antiguo 12/06/2003, 11:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes un buen número de fallos de "conceptos" a la hora de trabajar con Mysql .. Tal vez por qué no has leido ningún manual al respecto? ..

Te recomiendo este:
http://otri.us.es/recursosPHP/manual/index.htm


Algunos fallos:

Código PHP:
// estas líneas sobran .. el or die() anterior ya pararía la ejecución del script si se produce un error . así que nunca se llegaría a ejecutar esto.

if (!$conexion) { // COMPROBAMOS QUE LA CONEXION A TENIDO EXITO
echo "No se ha podido conectar con el servidor";
}


if (!
$consulta) {// COMPROBAMOS QUE SE HA PODIDO REALIZAR LA CONSULTA
echo "No se ha podido realizar la consulta";
}

// Y si usas mysql_error() mejor. Sobre todo en fase de desarollo y si estás aprendiendo a usar dichas funciones ahí veras el error exacto de Mysql (sea de SQL o de conexión) 

Código PHP:
/*****************Comprobamos las filas afectadas por la consulta *****************/

// Esto así no tiene sentido ...no estás asignando a ninguna variable y usandolo como condicionan en ninguna expresión ..
mysql_num_rows($consulta); 
Código PHP:
// Este es el problema del "bucle infinito" ... mysql_num_rows() devuelve el número de registros que te arroje tu consulta .. y FALSE si no se puede ejecutar .. Y while() se ejecuta (el bucle) hasta que sea "FALSE" la condición ..
while ($fila mysql_num_rows($consulta)) {

// debes usar:
while ($fila mysql_fetch_array($consulta)) {
//  mysql_fecht_array() te entrega el registro actual y mueve el puntero de la consulta realizada .. Devuelve FALSE cuando no encuentra más registros en la consulta ... 

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 12/06/2003, 12:12
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 14 años, 6 meses
Puntos: 1
ARREGLADO
ARREGLADO
ARREGLADO


Ole ole ole ole ¡ ¡ ¡ ¡ ¡ ¡

Cluster dame tu numero de cuenta y dime que te debo...

Jod** ¡ ¡ ¡

Tres semanas para conectar con la base de datos ¡ ¡ ¡ ¡ ¡ ¡

Que contento estoy¡¡¡

Te regalo mi portatil...

Ole ole ole

Muchas gracias

Última edición por Operadormail; 12/06/2003 a las 12:21
  #8 (permalink)  
Antiguo 12/06/2003, 12:25
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 15 años, 8 meses
Puntos: 2
Código PHP:
<?php 

if (empty($_POST['buscar'])){ 
echo 
"<p>Debe especificar una cadena a buscar</p><br>
<p><a href='../index.htm'>Volver</a></p><br>"
;
exit;
}

$conexion mysql_connect("localhost","usuario","pass");   
mysql_select_db ("NOMBRE_BD"$conexion) OR die ("No es posible conectarte a la BD");


$sql mysql_query("SELECT * FROM Socueva WHERE nombre LIKE '%{$_POST['buscar']}%'");

$cuantos mysql_num_rows($sql);

if (
$cuantos 0) {
<
table border '1'>
//Mostramos los nombres de las tablas 
<tr><td>id</td>n<td>nombre</td>n</tr>";

while ($fila = mysql_fetch_array($sql)) {
<tr><td>"
.$fila[id]."</td>
<td>"
.$fila[nombre]."</td></tr>"
}

echo 
"<p><a href='../index.htm'>Volver</p>
</table>"

}
else { 
echo 
"<p>¡No se ha encontrado ningún registro!</p>
<p><a href='../index.htm'>Volver</p>"


?> 
</body>
</html>
Prueba asi

Salu2
__________________
http://www.chorcha.com

Última edición por camargo; 12/06/2003 a las 12:32
  #9 (permalink)  
Antiguo 12/06/2003, 12:56
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
A Cluster tu portatil... y yo no me merezco al menos el mouse???
__________________
Manoloweb
  #10 (permalink)  
Antiguo 12/06/2003, 15:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
jajajaj .... Bueno todos aportamos así que vende el portatil y te pasamos los números de cuenta de banco o PayPal xDDDD

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 22:36.