Foros del Web » Programando para Internet » PHP »

doble conexion

Estas en el tema de doble conexion en el foro de PHP en Foros del Web. Saludos. Me encuentro tratando de conectar 2 bd por medio de php, pero no me sale, me gustaria su ayuda ya sea con un ejemplo ...
  #1 (permalink)  
Antiguo 03/10/2011, 09:37
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
doble conexion

Saludos.

Me encuentro tratando de conectar 2 bd por medio de php, pero no me sale, me gustaria su ayuda ya sea con un ejemplo u orientacion o documentacion de como hacerla de ntemano muchas gracias.
yo he hecho algo omo esto.
Código PHP:
session_start(); 
$aa=$_SESSION["a1"] = $_POST['a']; 
 
$conexion mysql_connect("localhost""root","");
$bdpestu=mysql_select_db("prueba_estudiante"$conexion) or die("No me pude conectar a Prueba");

$sql=mysql_query('SELECT * FROM prueba_estudiante.datos_estudiate');

while (
$row =  mysql_fetch_assoc($sql))
                {
            
                
$codigo=$row['Codigo'];
                
$nombre=$row['Nombre'];
                
$apellido=$row['Apellido'];
                
$email=$row['Email'];
                
$ciudad=$row['Ciudad'];
                
$pais=$row['Pais'];
}
mysql_close($conexion); //se supone que cerrar coneccion

$conexion mysql_connect("localhost""root","");
$bdmoodle=mysql_select_db("moodle"$conexion) or die("No me pude conectar ");

while (
$row =  mysql_fetch_assoc($sql)) 
{
$cac="INSERT INTO moodle.mdl_user (id , auth ,confirmed ,policyagreed ,deleted ,mnethostid ,username ,password ,idnumber ,firstname ,lastname ,email ,emailstop ,icq ,skype ,yahoo ,aim ,msn ,phone1 ,phone2 ,institution ,department ,address ,city ,country ,lang ,theme ,timezone ,firstaccess ,lastaccess ,lastlogin ,currentlogin ,lastip ,secret ,picture ,url ,description ,mailformat ,maildigest ,maildisplay ,htmleditor ,ajax ,autosubscribe ,trackforums ,timemodified ,trustbitmask ,imagealt ,screenreader) VALUES (NULL , 'manual', '1', '0', '0', '1', '$row['Codigo']', '[cf735486ada2306b54c26debafc8d5ac]', '', '$nombre', '$apellido', '$email', '0', '', '', '', '', '', '', '', '', '', '', '$ciudad', '$pais', 'es_utf8', '', '99', '0', '0', '0', '0', '', '', '0', '', NULL , '1', '0', '2', '1', '1', '1', '0', '0', '0', NULL , '0')";

}
mysql_query($cac); 
si tienen un ejemplo o un post que me sirva les agradeceria gracias...
__________________
______________________________
Evgueny Original....
  #2 (permalink)  
Antiguo 03/10/2011, 09:51
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: doble conexion

No necesitas cerrar la conexion y empezar otra nueva, solo cambiar la base seleccionada.

estas lineas son innecesarias.

Código PHP:
mysql_close($conexion); //se supone que cerrar coneccion

$conexion mysql_connect("localhost""root",""); 
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 03/10/2011, 09:54
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

ya lo he probado sin esa linea y da igual no realiza la inserccion en la 2 bd. y para probar que las variables estaban llenas las imprimir es decir el problema esta en el proceso de insercion
__________________
______________________________
Evgueny Original....
  #4 (permalink)  
Antiguo 03/10/2011, 09:55
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: doble conexion

Igualmente tienes un error con las comillas en el insert

cambia esto
'1', '$row['Codigo']', '[cf735486ada2306b54c26debafc8d5ac]',

por esto

'1', '".$row['Codigo']."', '[cf735486ada2306b54c26debafc8d5ac]',
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 03/10/2011, 10:12
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

Hola h2swider.

igual esa es la variable codigo ya lo cambie por $codigo pero sige sin insertar... de igual manera la cambie por lo que tu me dijiste y aun ada que realiza la insercion en la 2 bd
__________________
______________________________
Evgueny Original....
  #6 (permalink)  
Antiguo 03/10/2011, 13:38
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Por que no va a la fija y hace esto ?

mysql_query($cac) or die (mysql_error());

Esto le dirá cual es el error de porque no esta insertando. Después cópielo y peguelo aquí.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 03/10/2011, 13:58
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

Saludos jotaincubus

coloque lo de or die mysql error y salio esto:

Query was empty

diec q esta vacia repito la consulta de la primera bd yo la imprimi y si hay datos.
__________________
______________________________
Evgueny Original....
  #8 (permalink)  
Antiguo 03/10/2011, 14:03
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Y si usted imprime $cac esta seguro de que imprime los valores que vienen de la otra consulta como $row['Codigo'] ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #9 (permalink)  
Antiguo 03/10/2011, 14:15
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

si

Código PHP:

$sql
=mysql_query('SELECT * FROM prueba_estudiante.datos_estudiate');
                
                
                print 
"<center><table border = '2'> \n";
                print
"<tr> \n";
                print 
"<td>Codigo</td> \n";
                print 
"<td>Nombre</td> \n";
                print 
"<td>Apellido</td> \n";
                print 
"<td>Email</td> \n";
                print 
"<td>Ciudad</td> \n";
                print 
"<td>Pais</td> \n";
                print
"</tr> \n";
                
                while (
$row =  mysql_fetch_assoc($sql))
                {
            
                
$codigo=$row['Codigo'];
                
$nombre=$row['Nombre'];
                
$apellido=$row['Apellido'];
                
$email=$row['Email'];
                
$ciudad=$row['Ciudad'];
                
$pais=$row['Pais'];
            
                print
"<tr> \n";
                print 
"<td>";
                print 
$codigo;
                print 
"</td>";
                print 
"<td>";
                print 
$nombre;
                print 
"</td>";
                print 
"<td>";
                print 
$apellido;
                print 
"</td>";
                print 
"<td>";
                print 
$email;
                print 
"</td>";
                print 
"<td>";
                print 
$ciudad;
                print 
"</td>";
                print 
"<td>";
                print 
$pais;
                print 
"</td>";
                
                print
"<tr> \n";
            
                            
                }
            
                print 
"</table> \n"
y me imprime todos los daros que trae la consulta
__________________
______________________________
Evgueny Original....
  #10 (permalink)  
Antiguo 03/10/2011, 14:21
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Mi pregunta no tiene nada que ver con la consulta sino con el INSERT, si usted hace

echo $cac;

esto le imprime bien la estructura de su INSERT ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #11 (permalink)  
Antiguo 03/10/2011, 14:24
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

Te cuento que puse a imprimir despues de la linea donde esta:
Código PHP:
$bdmoodle=mysql_select_db("moodle"$conexion) or die("No me pude conectar "); 
y me imprimer vacio.....es decir que al cambiar de coneccion se pierden los datos que puedo hacer?


q si impirmo el insert a no no no hay nada
__________________
______________________________
Evgueny Original....
  #12 (permalink)  
Antiguo 03/10/2011, 14:44
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Imprima $cac dentro del while.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #13 (permalink)  
Antiguo 03/10/2011, 14:47
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

no hace nada lo coloke dentro del while y no hace nada sige saliendo solo

Query was empty
__________________
______________________________
Evgueny Original....
  #14 (permalink)  
Antiguo 03/10/2011, 14:55
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Bueno man, la cosa es que usted llega y hace esto:

Código PHP:
Ver original
  1. while ($row =  mysql_fetch_assoc($sql))
  2.                 {
  3.              
  4.                 $codigo=$row['Codigo'];
  5.                 $nombre=$row['Nombre'];
  6.                 $apellido=$row['Apellido'];
  7.                 $email=$row['Email'];
  8.                 $ciudad=$row['Ciudad'];
  9.                 $pais=$row['Pais'];
  10. }

Y después mas abajo quiere hacer otro con el mismo resultado, pues déjeme decirle que la cosa no es tan sencilla porque después de que usted hace ese bucle, el apuntador desaparece, así que le toca devolver el apuntador de ese resultado al principio para que vuelva a hacer el recorrido con otro bucle... (que enredo)

Código PHP:
Ver original
  1. mysql_data_seek($sql, 0);

Esto lo debe colocar antes del segundo while, espero que le sirva.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #15 (permalink)  
Antiguo 03/10/2011, 15:21
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

Hola jotaincubus

te cuento que ya imprime el Insert pero lo repite muxas veces, es decir si la consulta trae 5 filas pues repite todo todo 5 veces con cada dato sin repetir hasta hay bn pero imaginate que no realiza insercion de igual forma xD

Código PHP:
"INSERT INTO moodle.mdl_user (id , auth ,confirmed ,policyagreed ,deleted ,mnethostid ,username ,password ,idnumber ,firstname ,lastname ,email ,emailstop ,icq ,skype ,yahoo ,aim ,msn ,phone1 ,phone2 ,institution ,department ,address ,city ,country ,lang ,theme ,timezone ,firstaccess ,lastaccess ,lastlogin ,currentlogin ,lastip ,secret ,picture ,url ,description ,mailformat ,maildigest ,maildisplay ,htmleditor ,ajax ,autosubscribe ,trackforums ,timemodified ,trustbitmask ,imagealt ,screenreader) VALUES (NULL , 'manual', '1', '0', '0', '1', '$row['Codigo']', '[cf735486ada2306b54c26debafc8d5ac]', '', '$nombre', '$apellido', '$email', '0', '', '', '', '', '', '', '', '', '', '', '$ciudad', '$pais', 'es_utf8', '', '99', '0', '0', '0', '0', '', '', '0', '', NULL , '1', '0', '2', '1', '1', '1', '0', '0', '0', NULL , '0')"
__________________
______________________________
Evgueny Original....
  #16 (permalink)  
Antiguo 03/10/2011, 15:24
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Man, te recomiendo que leas MUCHOOOOOOOOOOOOOOOOOOOOO de PHP

Código PHP:
Ver original
  1. while ($row =  mysql_fetch_assoc($sql))  
  2. {
  3. $cac="INSERT INTO moodle.mdl_user (id , auth ,confirmed ,policyagreed ,deleted ,mnethostid ,username ,password ,idnumber ,firstname ,lastname ,email ,emailstop ,icq ,skype ,yahoo ,aim ,msn ,phone1 ,phone2 ,institution ,department ,address ,city ,country ,lang ,theme ,timezone ,firstaccess ,lastaccess ,lastlogin ,currentlogin ,lastip ,secret ,picture ,url ,description ,mailformat ,maildigest ,maildisplay ,htmleditor ,ajax ,autosubscribe ,trackforums ,timemodified ,trustbitmask ,imagealt ,screenreader) VALUES (NULL , 'manual', '1', '0', '0', '1', '$row['Codigo']', '[cf735486ada2306b54c26debafc8d5ac]', '', '$nombre', '$apellido', '$email', '0', '', '', '', '', '', '', '', '', '', '', '$ciudad', '$pais', 'es_utf8', '', '99', '0', '0', '0', '0', '', '', '0', '', NULL , '1', '0', '2', '1', '1', '1', '0', '0', '0', NULL , '0')";
  4.  
  5. }

Te imprime algun error cuando haces eso ?

NOTA: Fíjese que cambie de lugar el mysql_query.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #17 (permalink)  
Antiguo 03/10/2011, 15:26
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

ya habia echo eso de meter esa linea en el while y sale error

mysql_query($cac) or die (mysql_error());

Duplicate entry '1-u3' for key 'mdl_user_mneuse_uix'
__________________
______________________________
Evgueny Original....
  #18 (permalink)  
Antiguo 03/10/2011, 15:27
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Cita:
Iniciado por hernanchu Ver Mensaje
ya habia echo eso de meter esa linea en el while y sale error

mysql_query($cac) or die (mysql_error());

Y cual es el error ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #19 (permalink)  
Antiguo 03/10/2011, 15:29
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Cita:
Duplicate entry '1-u3' for key 'mdl_user_mneuse_uix'
Ese error no es de PHP

Lo que te esta diciendo es que no puede insertar ese campo porque 1-u3 ya existe en esa tabla y por lo que parece ese campo NO PUEDE SER REPETIDO.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #20 (permalink)  
Antiguo 03/10/2011, 15:31
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

Duplicate entry '1-u3' for key 'mdl_user_mneuse_uix'

ademas me acabo de dar cuenta que se repite los mismo datos dentro de los insert q se crean, es decir, coloke

mysql_data_seek($sql, 0);

si genero varios insert pero todos los datos que trata de meter son los mismos, es decir $codigo=123 en todos los campos de todos los insert al igual q $nombre, $ apellido y las demas variables...

tienes razon no es de php es de moodle cuando el username se repite por eso te digo q el insert si se repite pero trtando de insertar varias veces los mismo datos, es decir la consulta trae 5 filas pues solo crea 5 insert pero con los datos de la ultima fila nomas
__________________
______________________________
Evgueny Original....
  #21 (permalink)  
Antiguo 03/10/2011, 15:39
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Copia y pega aquí el código que tenes desarrollado, como va quedando.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #22 (permalink)  
Antiguo 03/10/2011, 15:52
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

ok

Código PHP:
session_start(); 
$aa=$_SESSION["a1"] = $_POST['a']; 
 
$conexion mysql_connect("localhost""root","");
$bdpestu=mysql_select_db("prueba_estudiante"$conexion) or die("No me pude conectar a Prueba Estudiante ");


if (empty(
$_SESSION["a1"]))
{
    print 
"Introduzca los Datos";
}
else
    {
            
$aa=$_SESSION["a1"] = $_POST['a']; 
            

                
$sql=mysql_query('SELECT * FROM prueba_estudiante.datos_estudiate');
                
                
                print 
"<center><table border = '2'> \n";
                print
"<tr> \n";
                print 
"<td>Codigo</td> \n";
                print 
"<td>Nombre</td> \n";
                print 
"<td>Apellido</td> \n";
                print 
"<td>Email</td> \n";
                print 
"<td>Ciudad</td> \n";
                print 
"<td>Pais</td> \n";
                print
"</tr> \n";
                
                while (
$row =  mysql_fetch_assoc($sql))
                {
            
                
$codigo=$_SESSION["codigo"]=$row['Codigo'];
                
$nombre=$row['Nombre'];
                
$apellido=$row['Apellido'];
                
$email=$row['Email'];
                
$ciudad=$row['Ciudad'];
                
$pais=$row['Pais'];
            
                print
"<tr> \n";
                print 
"<td>";
                print 
$codigo;
                print 
"</td>";
                print 
"<td>";
                print 
$nombre;
                print 
"</td>";
                print 
"<td>";
                print 
$apellido;
                print 
"</td>";
                print 
"<td>";
                print 
$email;
                print 
"</td>";
                print 
"<td>";
                print 
$ciudad;
                print 
"</td>";
                print 
"<td>";
                print 
$pais;
                print 
"</td>";
                
                print
"<tr> \n";
            
                            
                }
            
                print 
"</table> \n";
                
                
            
            
            
$bdmoodle=mysql_select_db("moodle"$conexion) or die("No me pude conectar a MOODLE");
        
                
            
mysql_data_seek($sql0);        
            while (
$row =  mysql_fetch_assoc($sql)) //Codigo Nuevo 
            
{
            
$codigo=$_SESSION["codigo"];
            
            
$cac="INSERT INTO moodle.mdl_user (id , auth ,confirmed ,policyagreed ,deleted ,mnethostid ,username ,password ,idnumber ,firstname ,lastname ,email ,emailstop ,icq ,skype ,yahoo ,aim ,msn ,phone1 ,phone2 ,institution ,department ,address ,city ,country ,lang ,theme ,timezone ,firstaccess ,lastaccess ,lastlogin ,currentlogin ,lastip ,secret ,picture ,url ,description ,mailformat ,maildigest ,maildisplay ,htmleditor ,ajax ,autosubscribe ,trackforums ,timemodified ,trustbitmask ,imagealt ,screenreader) VALUES (NULL , 'manual', '1', '0', '0', '1', '".$row['Codigo']."', 'cf735486ada2306b54c26debafc8d5ac', '', '$nombre', '$apellido', '$email', '0', '', '', '', '', '', '', '', '', '', '', '$ciudad', '$pais', 'es_utf8', '', '99', '0', '0', '0', '0', '', '', '0', '', NULL , '1', '0', '2', '1', '1', '1', '0', '0', '0', NULL , '0')";
            echo 
$cac;
mysql_query($cac) or die (mysql_error());

        }
        
            

            
        

__________________
______________________________
Evgueny Original....
  #23 (permalink)  
Antiguo 03/10/2011, 16:08
 
Fecha de Ingreso: septiembre-2011
Ubicación: Colombia
Mensajes: 88
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: doble conexion

Saludo jotaincubus

Te agradezco tu amable colaboracion gracias a tu orientacion encontre que era del ultimo error muchas gracias jotaincubus de corazon muchisimas gracias hoy he aprendido mucho.. y en cuanto dice q me toca leer si es cierto aun aunque ya tengo 26 apenas ando comenzando estdios de telecomunicaciones pero cada dia se aprende y de verdad te agradescoooooooo muhcismomomo tu ayuda
__________________
______________________________
Evgueny Original....
  #24 (permalink)  
Antiguo 03/10/2011, 16:17
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: doble conexion

Cita:
Iniciado por hernanchu Ver Mensaje
Saludo jotaincubus

Te agradezco tu amable colaboracion gracias a tu orientacion encontre que era del ultimo error muchas gracias jotaincubus de corazon muchisimas gracias hoy he aprendido mucho.. y en cuanto dice q me toca leer si es cierto aun aunque ya tengo 26 apenas ando comenzando estdios de telecomunicaciones pero cada dia se aprende y de verdad te agradescoooooooo muhcismomomo tu ayuda
No hay problema...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Etiquetas: conexion, doble, mysql, sql
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 04:51.