Autor
|
Tema: Relacionar basesde datos (Leído 2,183 veces)
|
egiptoelcairo
Desconectado
Mensajes: 80
|
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 <?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
|
Lo estas haciendo bien.. menos todo el script que tienes mal...
Primero de server pones local ghost y luego pones localhost. if (!$con) { }
Esta parte, es totalmente inútil puesto que no tienes ninguna variable que se llame $con.
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. { 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...
No cierras absolutamente nada... la variable $con no existe.. Saludos
|
|
|
En línea
|
|
|
|
egiptoelcairo
Desconectado
Mensajes: 80
|
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); ?>
|
|
|
En línea
|
|
|
|
#!drvy
|
Veamos,
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, { echo $row['id']; echo "<br />"; {
se convertiría en $userid = $row['id']; echo $userid.'<br />';
Y por ultimo, mysql_query("UPDATE account_data SET dp= + 25 WHERE id =".$userid,$web);
Saludos
|
|
|
En línea
|
|
|
|
egiptoelcairo
Desconectado
Mensajes: 80
|
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 ?.
|
|
« Última modificación: 10 Junio 2012, 00:34 am por egiptoelcairo »
|
En línea
|
|
|
|
#!drvy
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Relacionar los SIG con visual Basic
Programación Visual Basic
|
Gabicita
|
0
|
1,185
|
16 Octubre 2006, 06:42 am
por Gabicita
|
|
|
relacionar 2 datacombo
Programación Visual Basic
|
choquito
|
3
|
3,422
|
29 Enero 2008, 15:40 pm
por choquito
|
|
|
relacionar datos y contabilizarlos
Programación Visual Basic
|
aherbo1
|
1
|
1,560
|
9 Enero 2011, 21:22 pm
por Psyke1
|
|
|
[Resuelto] Relacionar PHP y bases de datos mediante Links
PHP
|
welchu
|
2
|
1,995
|
6 Agosto 2018, 16:43 pm
por welchu
|
|
|
Diselo de base de datos (Relacionar)
Bases de Datos
|
dluffy01
|
1
|
1,937
|
18 Julio 2019, 09:07 am
por zellion
|
|