elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Relacionar basesde datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Relacionar basesde datos  (Leído 2,009 veces)
egiptoelcairo

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Relacionar basesde datos
« en: 8 Junio 2012, 19:15 pm »

Buenas,

Supongamos que tenemos 2 bases de datos una "usuarios" y ortra "web"

En la base de datos usuarios tenemos una tabla llama "datos basicos" en la cual se especifican los campos "nombre de la cuenta" y "id" en nombre de la cuenta aparece "kirinvieco", en id "1" porque es el primer usuario.

Y en la base de datos "web" tenemos una tabla llamada "preferencias" en la cual hay 2 campos "id" seria el correspondiente al usuario de la base de datos de "usuario" y el otro campo "valor" ,el campo valor se encuantra en "0".

La pregunta seria ¿como puedo relacionar estas bases de datos para que la web identifique a el "usuario" con su "id" y modifique el campo "valor" + 25 tantas veces como se ejecute el script.?
Tengo este pero me tira error en la linea 16

esta linea
Código:
  echo $row['id'] . ;
Código:
<?php
$web = mysql_connect("localghost","xxx","xxx");
$user = mysql_connect("localhost","xxx","xxx");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }


mysql_select_db("usuarios", $user);

$result = mysql_query("SELECT * FROM datos basicos");

while($row = mysql_fetch_array($result))
  {
  echo $row['id'] . ;
  echo "<br />";
  }

mysql_select_db("web", $web);
mysql_query("UPDATE account_data SET dp= + 25
WHERE id =".$result, $user);

mysql_close($con);


« Última modificación: 8 Junio 2012, 19:18 pm por egiptoelcairo » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Relacionar basesde datos
« Respuesta #1 en: 8 Junio 2012, 20:18 pm »

Lo estas haciendo bien.. menos todo el script que tienes mal...

Código
  1. $web = mysql_connect("localghost","xxx","xxx");
  2. $user = mysql_connect("localhost","xxx","xxx");

Primero de server pones localghost y luego pones localhost.

Código
  1. if (!$con)
  2.  {
  3.  die('Could not connect: ' . mysql_error());
  4.  }
  5.  

Esta parte, es totalmente inútil puesto que no tienes ninguna variable que se llame $con.

Código
  1. $result = mysql_query("SELECT * FROM datos basicos");
datos basicos ? Si usas una tabla que tenga espacios en su nombre debes usar ya sean comillas simples o comillas dobles para marcar su nombre.

Código
  1. while($row = mysql_fetch_array($result))
  2.  {
  3.  echo $row['id'] . ;
  4.  echo "<br />";
  5.  }
  6.  

El error lo tienes donde aparece la linea de amarillo... levas un punto y después punto y coma. Eso esta mal puesto que le indicas a PHP que una a la variable otra cosa que luego no pones..

Código
  1. mysql_query("UPDATE account_data SET dp= + 25 WHERE id =".$result, $user);

Aquí igual.. un punto delante de $result que no sirve para nada.. ademas de coma después y $user que no se para que pones todo eso...

Código

No cierras absolutamente nada... la variable $con no existe..


Saludos


En línea

egiptoelcairo

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Relacionar basesde datos
« Respuesta #2 en: 8 Junio 2012, 22:45 pm »

Retocando todo lo que me comentaste me queda asi pero me tira error en la linea de update

Código:
<?php
$web = mysql_connect("localhost","root","xxx");
$user = mysql_connect("localhost","root","xxx");
if (!$web)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("usuarios", $user);

$result = mysql_query("SELECT * FROM account");

while($row = mysql_fetch_array($result))
  {
  echo $row['id'];
  echo "<br />";
  {

mysql_select_db("web", $web);
mysql_query("UPDATE account_data SET dp= + 25 WHERE id ="$result);
mysql_close($web);
mysql_close($user);
?>
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Relacionar basesde datos
« Respuesta #3 en: 9 Junio 2012, 16:38 pm »

Veamos,

Código
  1. $result = mysql_query("SELECT * FROM account");

Aquí no seleccionas ningún usuario en especifico, por tanto devolverá todos los usuarios y sus ids en el while que haces a continuación. Mal, porque el UPDATE le haces fuera del while por tanto siempre actualizaras al mismo usuario.

Por tanto esto debería ser algo así:
Código
  1. $result = mysql_query("SELECT * FROM account WHERE id='algo'");
o
Código
  1. $result = mysql_query("SELECT * FROM account WHERE nombre='algo'");

Al hacer while, estas tardando de mas, puesto que tu lo único que quieres es actualizar el de 1 solo usuario. Si utilizas while se da a entender que va a ser mas de uno. Por tanto, esto,

Código
  1. while($row = mysql_fetch_array($result))
  2.  {
  3.  echo $row['id'];
  4.  echo "<br />";
  5.  {

se convertiría en

Código
  1. $row = mysql_fetch_array($result);
  2. $userid = $row['id'];
  3. echo $userid.'<br />';

Y por ultimo,

Código
  1. mysql_query("UPDATE account_data SET dp= + 25 WHERE id =".$userid,$web);

Saludos
En línea

egiptoelcairo

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Relacionar basesde datos
« Respuesta #4 en: 10 Junio 2012, 00:17 am »

Implementando todas las correcciones en el codigo, no logro entender como identifica al usuario registrado.

Código:
<?php
$web = mysql_connect("localhost","root","xxx");
$user = mysql_connect("localhost","root","xx");
if (!$web)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("usuarios", $user);

[color= "yellow" ][u]$result = mysql_query("SELECT * FROM account WHERE id='algo'");[/u][/color]

$row = mysql_fetch_array($result);
$userid = $row['id'];
echo $userid.'<br />';



mysql_select_db("web", $web);
mysql_query("UPDATE account_data SET dp= + 25 WHERE id ="[color=green].$userid[/color],$web);
mysql_close($web);
mysql_close($user);
?>

El codigo que se encuentra en amarillo en la parte donde me pusiste id="algo" , que variable tengo k introducir para que la propia web identifique al usuario registrado?, lo qjue se encuentra en verde no entiendo porque pones $userid,  seria $userno ?.
« Última modificación: 10 Junio 2012, 00:34 am por egiptoelcairo » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Relacionar basesde datos
« Respuesta #5 en: 10 Junio 2012, 13:08 pm »

Obviamente la identificación del usuario, o su nombre lo tienes que obtener tu, ya sea mediante un formulario de login o una cookie o lo que sea. PHP no es adivino para saber justo que ID que tiene que modificar.

El $userid es el ID del usuario que sacas de la base de datos de usuarios.
El $user, es la conexión que usas a la base de datos.


Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Relacionar los SIG con visual Basic
Programación Visual Basic
Gabicita 0 1,098 Último mensaje 16 Octubre 2006, 06:42 am
por Gabicita
relacionar 2 datacombo
Programación Visual Basic
choquito 3 3,287 Último mensaje 29 Enero 2008, 15:40 pm
por choquito
relacionar datos y contabilizarlos
Programación Visual Basic
aherbo1 1 1,451 Último mensaje 9 Enero 2011, 21:22 pm
por Psyke1
[Resuelto] Relacionar PHP y bases de datos mediante Links
PHP
welchu 2 1,749 Último mensaje 6 Agosto 2018, 16:43 pm
por welchu
Diselo de base de datos (Relacionar)
Bases de Datos
dluffy01 1 1,739 Último mensaje 18 Julio 2019, 09:07 am
por zellion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines