solid19
Usuario Novato
Usuario Novato

Hola, hace unos dias que veo que tengo un fallo con la conexion de php al mysql,  que a la hora de realizar la conexion, se conecta, pero a una base de datos disinta.
Cuando ejecuto la pagina, hay veces que muestra los datos correctamente de la tabla, pero otras veces muestra todo en blanco.
Probe a visualizar un mysql_error pero no muestra fallo de conexion y al mostrar la variable del la funcion mysql_connect al realizarla correctamente devuelve "Resource id #1" y cuando muestra todo en blanco devuelve "Resource id #2" y tienes que esta actualizando la pagina continuamente hasta que funcione.

Si el post no corresponde a la seccion correcta, agradeceria a algun administrador que lo pusiera donde corresponde.

Avatar Image
@man / @woman
@man / @woman

Hola, lo único que puedo sugerir es que leas los comentarios del post de abajo, a ver si te pueden orientar a encontrar el error; se trata de un problema semejante que se inició en el foro de mySql.

http://soporte.miarroba.com/17452/7[....]e-sale-un-error-cuando-abro-mi-web/

solid19
Usuario Novato
Usuario Novato

Ya vi el post q me recomendaste y si lo datos pongo los que aparecen en "Datos conexion mysql" , y la conexion que realizo con mysql es asi:

$bd =mysql_connect("mysql.webcindario.com",[login],[pass]);

y al mostrar la variable que lo almacen es lo q te comento que cuando muestra los datos correcamente devuelve "Resource id #1" y cuando muestra todo en blanco devuelve "Resource id #2".

Cree una pagina de prueba con una tabla por si quieres ver el fallo.

la pagina es https://mexterna.webcindario.com/prueba.php

Y el codigo que tiene escrito es:

<?php
    $bd = $bd=mysql_connect("mysql.webcindario.com",[login],[pass]);
    echo $bd."<br>";
    mysql_select_db("mexterna",$bd);

    $sql="Select * from prueba";
    $row=mysql_query($sql,$bd);
    
    while ($row1=mysql_fetch_array($row,$bd)
    {
        echo $row1['dato']."<br>";
    }
?>

El usuario y la contraseña los modifique en el codigo, pero en la pagina estan los correctos.

Avatar Image
@man / @woman
@man / @woman

Hola, esto aparenta un error de código o de edición en el post:

$bd = $bd=mysql_connect("mysql.webcindario.com",[login],[pass]);

Prueba con esta estructura (o equivalente) a ver que obtienes:

Spoiler:
  // establece enlace
  $link = mysql_connect('mysql.webcindario.com', $login, $pass);
  if( $link ){
    // selecciona db
    $db = mysql_select_db('mexterna', $link);
    if( $db ){
      // resto de las operaciones
    }
    else{
      echo('Base de datos: No conecta');
    }
    mysql_close($link);
  }
  else{
    echo('MySql: No conecta');
  }

Salu2

solid19
Usuario Novato
Usuario Novato

El fallo que me comentaste, fue de copiar y pegar, que empezara escribiendo y luego copiara todo tal cual.

Probe el codigo que me diste, y claro no muestra los datos de ninguna consulta, que es cuando yo veia el fallo, lo que si al mostrar el valor de $link se ve como unas veces muestra lo que te comentara de Resource id #1 y otras veces al actualizar muestra Resource id #2, que era cuando me fallaba el mostrar los datos de la consulta.

Revise la pagina que creara antes para que vieras lo del fallo, y a mayores cree otra con el codigo que me diste tu, y dos lineas mas.

La pagina con el codigo que me diste tu es https://mexterna.webcindario.com/codigo_dado.php

y el codigo quedo asi

<?php 
    $login=[login];
    $pass=[pass];
    $link = mysql_connect('mysql.webcindario.com', $login, $pass);
      if( $link ){
            // selecciona db
            $db = mysql_select_db('mexterna', $link);
            if( $db ){
              // resto de las operaciones
              echo "Realizo la consulta con exito<br>";
              echo $link;
            }
            else{
              echo('Base de datos: No conecta');
            }
        mysql_close($link);
      }
      else{
        echo('MySql: No conecta');
      }
?>
Avatar Image
@man / @woman
@man / @woman

Hola, 2 puntos:

1) Supongo que en el código $login=[login]; debe tener una forma parecida a esto $login='xxx'; (sin corchetes.)

2) La siguiente línea no tiene sentido práctico (está mal empleada, y casi seguro es la que provoca el error):

echo $link;

Lo siguiente lo saqué de una ayuda de Php:

Spoiler:
int mysql_connect ( [cadena $hostname [, cadena $usuario [, cadena $password [, bool $new_link [, int $client_flags]]]]] )

Devuelve: Un identificador de enlace positivo si tiene exito, o falso si error.

Hacer un echo con $link no tiene sentido ya que es un enlace a MySqlServer (devuelve un int o falso)

Resumen: si con este código (sin la línea que objeté) te aparece la línea 'Realizo la consulta con éxito' quiere decir que el enlace y la selección de la base de datos están correctas (así de simple: estás dentro).

Salu2

solid19
Usuario Novato
Usuario Novato

1) Si puse eso con corchetes pero ahi pongo el login q me pone en el panel de acceso a mysql y la contraseña igual, era pa no poner los datos.

2) si ya se que el mostrar el echo de la varible de la conexion no es recomentable, pero asi te muestra cuando se conecta si contiene un algo o esta vacia.

3) y repecto el mensaje, si se conecta, pero lo que te decia, que cuando se conecta, luego hay veces que no muestra los datos que tu utilices en la consulta, ya que muestra todo en blanco, en la primera pagina que te puse, te muestra el echo del la variable que contiene la conexion, y si te fijas cuando sale el Resource id #2, es cuando no muestra nada, y sin embargo cuando sale el Resource id #1 sale los valores de la tabla, que son a,b,c,d.

Por eso te digo que igual puede ser un fallo que se conecta, pero a una base de datos equivocada o de otro servidor, y por eso cuando ejecuta la consulta y muestras los datos no devuelve nada, y tampoco da fallo.

Avatar Image
@man / @woman
@man / @woman

mmm, como está la cosa me doy por vencido, supongo que el error puede estar en algo que no hayas tenido en cuenta hasta ahora.

De todas formas, dudo que se conecte a otro servidor u otra base de datos (significa que -además de 2 servidores- hay 2 bases de datos, 2 usuarios y 2 contraseñas idénticas, no creo semejante casualidad).

Salu2

solid19
Usuario Novato
Usuario Novato

Hombre no se si se conecta a otra base de datos, lo que si que cuando se conecta, esta claro que en el momento que falla, la conexion la realiza bien, pero a la hora de mostrar la consulta de cualquier tabla, la muestra todo en blanco,  y si actualizas la pagina, hay veces que a la segunda vez ya muestra los datos y otras veces aun tarda mas.

Estuve buscando por google a ver si habia algo referente a este fallo, pero no encontre gran cosa

Y respecto a cosas que igual me saltara, no se pense hoy el tema de las conexiones, si el servidor limita las conexiones y al hacer x conexiones en un tiempo especifico bloquea las consultas y por eso muestra todo en blanco.

El fallo no solo me ocurrio a mi, sino a un compañero de trabajo, le paso lo mismo, primero le empezo a pasar a el, y luego me empezo a falla a mi tambien, no se si tiene algo q ver, pero igual ayuda a encontrar donde esta el fallo.

Avatar Image
Machacateclados
Machacateclados

Wenas; he entrao en combate y....
while ($row1=mysql_fetch_array($row,$bd)
sustituyela por while($row1=mysql_fetch_array($row))

A ver que sucede...
De todas maneras yo soy partidario de usar variables que me digan que es.
así x ejemplo uso:
$dblink para un mysql_connect()
$db para un mysql_select_db()
$result para un mysql_query()
$row para un mysql_fecth_array()


Bueno, a lo que voy, prueba a cambiar esa línea a ver si ahora va. Saludos!

solid19
Usuario Novato
Usuario Novato

Ya hice el cambio en la pagina de prueba, y probe a actualizarla, y ahora parece q muestra los datos tanto de Resource id #1 o Resource id #2.

Lo que si no se como puede funcionan la funcion que modificamos, ya que necesita la conexion para poderse ejecutar no? al menos en los manuales de php siempre la ponen asi.

Avatar Image
Machacateclados
Machacateclados

Buenas noches solid19.
La conexión unicamente se necesita a la hora de hacer la consulta;es como si se conectase, ejecutase la sql, y se desconectase. Por eso la funcion mysql_query tiene dos parámetros, la sql y el link a la BD.
Mysql_query devuelve un valor  (false si no devuelve nada, y una estructura o similar si devuelve algo; ello tb depende de la instrucción que se use. Es decir, un select no devuelve lo mismo que un insert into.
Bueno, pues como mysql_query ha devuelto un resultado, lo unico que queda por hacer es leerlo, como... pues con mysql_fetch_array.
La cosa queda así:
$dblink=mysql_connect("host","user","pwd");
$bd=mysql_select_db("basedatos");
$result=mysql_query("instruccion_sql",$bd);
$fila=mysql_fetch_array($result);

Lo ideal es comprobar el valor devuelto para cada una de esas instrucciones. Así mismo,yo para $result compruebo si ha devuelto filas con la siguiente instruccion mysql_num_rows($result)>0 Así todo lo que meta dentro del if se ejecuta, y sino va al else. Es un poco lioso, pero poco a poco se le pilla el tranquillo....Tal vez me haya liao un poco, lo siento,jeje. Sigue posteando para resolver tus dudas,ok? Un saludo!

solid19
Usuario Novato
Usuario Novato

Si la funcion de mysql_num_rows ya la usara alguna que otra vez, pero solo para eso, contar las lineas que devolvia, y mostrarlas, en el caso este, si la ejecutara seguramente devolveria 0, ya que en otras paginas que tenia consultas con count me devolvia valores nulos, ya que no podia contar nada, y cuando funcionaba correctamente ya me devolvia el valor correcto.

A partir de ahora seguire hacieno el mysql_fetch_array tal como me indicaste, ya que parece que  funciona bien, si en algun momento veo que vuelve fallar, ya os comentare.

Gracias por la ayuda.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 18/Oct/2009, 06:24
nenecesar NoSetup.org24kOct/09
Por: , el 15/Abr/2006, 08:15
pixel2you02kApr/06
Por: , el 23/Jun/2004, 16:55
Emedicina NoSetup.org323kJun/04
Por: , el 20/Dic/2010, 15:08
pankemo GestionXls42kDec/10
Por: , el 23/Ene/2006, 16:32
LORDARMATO chavp26kJan/06