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 echo $row['id'] . ;
<?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);
Lo estas haciendo bien.. menos todo el script que tienes mal...
$web = mysql_connect("localghost","xxx","xxx");
$user = mysql_connect("localhost","xxx","xxx");
Primero de server pones localghost y luego pones localhost.
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
Esta parte, es totalmente inútil puesto que no tienes ninguna variable que se llame $con.
$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.
while($row = mysql_fetch_array($result))
{
echo $row['id'] . ;
echo "<br />";
}
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..
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...
mysql_close($con);
No cierras absolutamente nada... la variable $con no existe..
Saludos
Retocando todo lo que me comentaste me queda asi pero me tira error en la linea de update
<?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);
?>
Veamos,
$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í:
$result = mysql_query("SELECT * FROM account WHERE id='algo'");
o
$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,
while($row = mysql_fetch_array($result))
{
echo $row['id'];
echo "<br />";
{
se convertiría en
$row = mysql_fetch_array($result);
$userid = $row['id'];
echo $userid.'<br />';
Y por ultimo,
mysql_query("UPDATE account_data SET dp= + 25 WHERE id =".$userid,$web);
Saludos
Implementando todas las correcciones en el codigo, no logro entender como identifica al usuario registrado.
<?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 ?.
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