Foros del Web » Programando para Internet » PHP »

problema al conectar con mi base de datos

Estas en el tema de problema al conectar con mi base de datos en el foro de PHP en Foros del Web. hola yo tengo una base de datos en mi localhost y un codigo php para conectarse con ella. el tema es que estoy siguiendo un ...
  #1 (permalink)  
Antiguo 10/08/2009, 08:36
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
problema al conectar con mi base de datos

hola yo tengo una base de datos en mi localhost y un codigo php para conectarse con ella.
el tema es que estoy siguiendo un curso y normalmente el codigo deberia andar por lo que entiendo pero no, me tira un error en la linea 32 en el loop for.

les paso el codigo a ver si alguien me puede desir cual es el error creo que lo que no entiendo bien es la coneccion estoy usando el appserver y la base de datos la hise con el phpmyadmin que instala de por si el appserver.

formulario:

Código HTML:
<form id="form1" name="form1" method="post" action="resultado.php">
<table width="400" border="1">
<tr>
<td height="45"><p>Elige tipo de busqueda:<br />
<label>
<select name="tipobusqueda" id="tipobusqueda">
<option value="isbn">ISBN</option>
<option value="autor">Autor</option>
<option value="titulo">Titulo</option>
</select>
</label>
<br>
</p></td>
</tr>
<tr>
<td height="45"><p>Elige termino de busca<br />
<label>
<input type="text" name="terminobusqueda" id="terminobusqueda" />
</label>
<br>
</p></td>
</tr>
<tr>
<td><label>
<input type="submit" name="buscar" id="buscar" value="buscar" />
</label></td>
</tr>
</table>
</form>resultado.php

Código PHP:
<?php
trim($terminobusqueda);
if(!$tipobusqueda || !$terminobusqueda)
{
echo "No as introducido los detalles de la busqueda. Por favor llena el formulario e intentalo de nuevo";
exit;
}
$tipobusqueda=addslashes($tipobusqueda);
$terminobusqueda=addslashes($terminobusqueda);

@ $db=mysql_pconnect("localhost","root","laouen");
if (!$db)
{
echo "error en la coneccion a la base de datos, por favor, prueve de nuevo mas tarde.";
exit;
}
mysql_select_db("libreria");
// consulta ala base de datos
$consulta ="select * from libros where ".$tipobusqueda. "like '%". $terminobusqueda. "%'";
$resultado=mysql_query($consulta);
$num_resultados=mysql_num_rows($resultado);
echo "<br> Numero de libros encontrados: ". $num_resultados."</ p>";

for ($i=0, $i<$resultado, $i++)
{
// procesamos los resultados
$row=mysql_fetch_array($resultado);
echo "<p><strong>".($i+1).". Titulo: ";
echo stripslashes ($row["titulo"]);
echo "</strong><br>Autor: ";
echo stripslashes ($row["Autor"]);
echo "<br>ISBN: ";
echo stripslashes ($row["isbn"]);
echo "<br>Precio: ";
echo stripslashes ($row["precio"]);
}

?>
bueno espero que alguien me pueda ayudar
  #2 (permalink)  
Antiguo 10/08/2009, 08:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al conectar con mi base de datos

mmm... asi no se usan los resultados de mysql_query()

si utilizas un for() no se puede, ya que $resultado es del tipo #result ... y no entero, por lo cual un for() esta completamente errado...

si lo deseas hacer con un for, solo cambia tu comparación de $resultado por $num_resultados


o debes usar un ciclo while()

Código PHP:
while ($row mysql_fetch($resultado))
{
  
// ...

busca en el foro mas información al respecto...


suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/08/2009, 08:47
Avatar de fcdragons  
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 15 años, 7 meses
Puntos: 13
Respuesta: problema al conectar con mi base de datos

y despues del mysql_select_db no va la conexion de todos los demas datos ?

Código PHP:
mysql_select_db("libreria"$db); 
prueba cambiando esto
__________________
SumarioWeb
@sumarioweb
BasicNews
  #4 (permalink)  
Antiguo 10/08/2009, 08:52
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
prueba sacando el <br> que está en la linea antes del for y el </p> que no lo tiene iniciado en ninguna parte.

eso es codigo html y no corresponde dentro de php


te recomiendo esta manera de conectar y sacar tus datos

Código PHP:
<?php
        mysql_connect
("localhost""root""") or die ("Error al Conectar!");
        
mysql_select_db("tubase") or die ("Verifique la Base de Datos");
          
$consulta "SELECT loquequieras FROM dondequieras";
        
$resultado mysql_query ($consulta);
        
        while (
$fila mysql_fetch_array($resultado))
        {
?>

nos dices que tal
saludos

Última edición por GatorV; 10/08/2009 a las 09:29
  #5 (permalink)  
Antiguo 11/08/2009, 07:36
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: problema al conectar con mi base de datos

muchisimas gracias ahora lo voy a probar y despues les comento como me fue.
lo de las etiquetas de html en php funciona porque los toma como string. pero igual las voy a sacar a ver que onda y lo del for no entendi bien porque no se puede usar. voy a usar el while como dijo pateketrueke.
si me puedes explicar mejor el tema seria genial...
en cuanto a lo que dijo fcdragon despues de la conecion de select_mysql_db iria la coneccion ("libreria", $db) pero yo antes use la funcion mysql_pconnect que es diferente a mysql_connect con la que yo use no hace falta espesificar de vuelta la base de datos ya que la abrio anteriormente va eso creo diganme si estoy errado porque soy vastante novato.
bueno los mantengo en contacto ayer no pude abrir el foro de vuelta por eso estoy hoy perdon la demora
  #6 (permalink)  
Antiguo 11/08/2009, 07:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al conectar con mi base de datos

mejor explicado... el manual de PHP!!
http://www.php.net/manual/en/languag...structures.php

te sugiero lo leas completo, en breve... for() generalmente se usa para ciclos númericos.... y while() también, ¿entonces como hacer un ciclo lógico??

Código PHP:
// usando for
for (; $row mysql_fetch_assoc($resultado);)
{
  
// ...
}

// usando while
while ($row mysql_fetch_assoc($resultado))
{
  
// ...
}

// usando do-while
do
{
  
// ...
} while($row mysql_fetch_assoc($resultado)); 
como se puede observar los tres ciclos hacen exactamente lo mismo... así, que se puede usar cualquiera para el mismo propósito....


suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 11/08/2009, 07:59
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: problema al conectar con mi base de datos

si eso me queda claro lo que no me queda claro es por que no usar for.
ya que lo que quiero es que repida un siclo mientras encuentre datos en la db
  #8 (permalink)  
Antiguo 11/08/2009, 08:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al conectar con mi base de datos

no dije que no se pueda usar un for() dije que de la forma en la que lo hacías no se iba a poder....

si te fijas en los ejemplos anteriores, se le puede dar varios usos al for()
Código PHP:
for ($i  0$i $num_resultados; ++$i)
{
  
$row mysql_fetch_assoc($resultado);
  
// ...

y este ejemplo, es idéntico a usar while()

NOTA que el primer for() esta controlado por números, precisamente el numero de resultados disponibles...

si usas while() ya no necesitas estos números, ya que el ciclo es lógico ... osea
Código:
MIENTRAS (HAY_RESULTADOS);

suerte...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 15:11.