Ayuda: tengo problemas en una aplicación creada con lenguaje PHP

Hola, luego de las otras respuestas, hice lo siguiente:
php
function conectarse()
if (!$link=mysql_connect("localhost","root","pssw"))
echo "error en la conexión a la base datos"; exit();
if (!mysql_select_db="extrasistema",$link)
echo" error seleccionando la BBDD"; exit():
return $link
$link=conectarse()
echo " estamos conectados"
mysql_close($link);
php ----->> me faltan las llaves y las sangrías
Funciona, ya que si cambio "root" por "rot" no conecta, lo mismo si cambio por "estrasistema". Pero si esto lo "incluyo"en otro script de búsqueda, nada resulta aunque diga "estamos conectados". ¿Alguna idea?. Lo único que necesito es: con un "nombre" buscar un "precio" en mi base. ¿Podrás a la distancia ayudarme?, Gracias

1 respuesta

Respuesta
1
El script que tienes es para conectarse a la BBDD, pero no le estás preguntando nada, ni haciendo ninguna consulta, por eso no pasa "nada".
Tienes que hacerle una consulta a la BD, Hay miles de tutoriales de como hacerlo, te recomiendo uno de ellos:
http://www.programacion.com/articulo/como_interactuar_con_una_base_de_datos_mysql_usando_php_141
Hola, tengo el siguiente script donde tengo "incluido" el script de "prueba de conexión" y allí donde "no pasa nada". Me permite ingresar mi parámetro de búsqueda, me aparece que estoy bien conectado, pero al hacer clic al botón "Buscar", solo me sale la "barrita"verde inferior que me dice que me estoy conectando a la red local, pero SIN resultado. Te copio el script de búsqueda por si allí estvuiera el error. Gracias y veré tu sugerencia, lo mismo que buscare si debo modificar mi php.ini del appserver
<form method="post" action="test1.php">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br>
<input type="submit" value="Buscar" name="buscar">
<?php
include("test2.php");//-->este es el que prueba  la conexion y funciona
$link=Conectarse();
if (!isset($buscar)){
      echo "Debe especificar una cadena a bucar";
     // echo "
</html>
</body>
\n";
      exit;
}
//$resultado= mysql_query("SELECT nombre,precio FROM examenes WHERE nombre LIKE '%$buscar%' ORDER BY nombre") or die(mysql_error());
$resultado=mysql_query("select nombre from examenes where nombre= $buscar",$link)or die(mysql_error());
if ($row = mysql_fetch_array($resultado)){
      echo "
<table border = '1'>
\n";
//Mostramos los nombres de las tablas
echo "
<tr>
\n";
while ($field = mysql_fetch_row($resultado)){
            echo "
<td>$field->name</td>
\n";
}
      echo "
</tr>
\n";
do {
            echo "
<tr>
\n";
            echo "
<td>".$row["codigo"]."</td>
\n";
            echo "
<td>".$row["nombre"]."</td>
\n";
            echo "
<td>".$row["precio"]."</td>
\n";
            echo "
<td>".$row["condiciones"]."</td>
\n";
                } while ($row = mysql_fetch_array($resultado));
            echo "
</table>
\n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>
¿Está encontrando algún resultado?, es posible que no te salga nada porque no encuentra valores...
<body>
<form method="post" action="test1.php">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br>
<input type="submit" value="Buscar" name="buscar">
</form>
</body>
</html>
<html>
<body>
<?php
$host="localhost";
$user="root";
$password="pssw";
$link = mysql_connect ($host, $user, $password) or die ("<center>No se puede conectar con la base de datos\n</center>\n");
?>
<?php
$dbname="extrasistema";
   $tablename="examenes";
   $query="SELECT * FROM $tablename Where nombre= $buscar  ;";
   $result=mysql_db_query ($dbname, $query, $link);
   while ($row = mysql_fetch_array ($result)) ---> linea 31
   {
      echo ("<TR>");
     echo ("<TD>$row[nombre]</TD>\n");
     echo ("<TD>$row[precio]</TD>\n");
      echo ("</TR>");  
    }
    mysql_free_result($result);
Lo arregle otro poco y Ahora me sale ese error (linea31), la BD tiene pocos datos de prueba y siempre busca la misma palabra de prueba que si existe
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\test1.php on line 31
Te falta definir y pasarle el dbname a la conexión
Al script anterior, donde dices que me falta la conexión con la dbname le agrego el script de conexión (que ya viste) en donde aparece "Conexión con la base de datos conseguida" y sigue apareciendo el error =
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\test1.php on line 31
¿Es qué me faltaría definir y pasarle la Bd de otra manera? ¿O en otra parte?
Gracias
Lo cierto es que me estoy mareando con tanto código ya... es mucho más fácil de lo que me muestras, de verdad, consulta como realizar la conexión en esta página:
http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/connect-to-mysql-database.aspx
Lamento que te marees pero vi la página y es exactamente lo mismo que tengo (de 3 maneras)pero de otra forma, nada nuevo. Lo único que me falta, si tienes una página de consulta es: como hacer una consulta a la BD y OBTENER un resultado.
Tengo la conexión, funciona, pero no lo hace la consulta y no me dices que puede estar malo
Es que el error que te está dando es que no hay una conexión creada correctamente, "supplied argument is not a valid MySQL result resource". Significa, que o bien no tienes el Mysql activo, o que estás asignando una variable que no corresponde.
Tienes el Wamp en tu máquina, has comprobado que la BD funciona, con un usuari y contraseña, que puedes entrar al phpmyadmin, ¿etc?... Si has probado todo y te sigue sin funcionar, debes empezar por lo básico, a ver qué tipo de problema tienes.
Entiende que no estoy ahí y solo puedo ver lo que me muestras, pero no lo que hay detrás, y es que para que funcione la BD, tienes que comprobar diversas cosas.
Hola.
Por tus respuestas y buscando arreglos he logrado que el error ya no aparezca y al pedir que muestre toda la BD lo hace, pero no busca un parámetro.
¿Es posible que cuando uno solicita una "palabra" para"buscar" en una caja de texto y en el campo lo que hay es texto de varias palabra sea lo que no funciona?.
Si así fuera, ¿tienes dato de algún script de "buscar una palabra entre varias palabras"?. Esto es porque yo necesito buscar el nombre de un examen y estos por lo general son descritivos, ej:
1)glucosa en sangre;
2) Glucosa en orina
3) Glucosa en etc...
Entonces yo pongo "glucosa" y me de las alternativas
Gracias
Para buscar una palabra entre varias, utiliza en el Query: LIKE '%palabra%'
Gracias, por si a alguien más le sirviera, puse como lo sugeriste y no funcionó, pero al escribirlo de esa forma, si lo hizo: '%{$_POST['palabra']}%'".
Al parecer es algo de como lo interpreta pero no tengo claro el porque. Gracias y hasta otra duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas