Comunidad de diseño web y desarrollo en internet online

ayuda-un campo visible en la web y una resta en sql por php

Citar            
MensajeEscrito el 08 Jul 2012 04:36 pm
buenas

miren he estado trabajando en un webshop pero de video juego online
ose en el juego los usuario tiene un dinero llamado oro y con eso quiero vender item del mismo juego
ya tengo ambas tablas pero por defecto del juegos estan en db (Carpetas) distintas
una es characters que esta en la db characters y el campo es money he guild
osea asi

DB charactars
tabla characters
campos id account name level money vip done

y la otra esta asi

DB website
tabla itemshop
campos id iditem nombreitem precio1 precio2 precio3

lo cual yo nececito que money sea visible en la web
al igual que precio1 o 3
pero cundo el usuari este logeado en la web pueda aser clik en precio y este sea descontado de money

pare luego general el item en juego pero la generacion del item es un create table y eso ya lo tengo si me pueden ayudar se les agradesera mucho les dejo mi coneccion para que vea como esta la sql por php

esa es mi coneccion y mis dbs


<?php
if(!isset($_SESSION)) session_start();
# Languages ############
if(isset($_GET['Local'])) $lang = $_GET['Local'];
else if(isset($_SESSION['Local'])) $lang = $_SESSION['Local'];
if(empty($lang)) $lang = 'en-us';

$language = $lang;
$langs = Array("en-us" => null, "ro-ro" => null, "en-gb" => null, "it-it" => null, "de-de" => null, "es-es" => null, "bu-bg" => null , "es-mx" => null, "gr-gr" => null, "ru-ru" => null, "zh-cn" => null, "zh-tw" => null, "fr-fr" => null);
if(array_key_exists($lang,$langs))require_once("lang/".$lang.".php");
else require_once("/lang/en-us.php");
$_SESSION['Local'] = $language;
######################
# Mysql ################

$serveraddress = "localhost";
$serveruser = "user";
$serverpass = "pass";
$serverport = "3306";

$server_db = "website";
$server_adb = "auth";

$server_cdb = "characters";
$server_wdb = "world";

######################
# Extra ################

$website['realm'] = "website.com";
$mysql_cod = 'cp1251';
$name_realm1['realm'] = "mundo del juego"; //Temporal Fix for new changes, TEMPORAL

# Comunity Links ############

$comun_link['Facebook'] = "http://www.facebook.com"; // Your adress of Facebook comunity
$comun_link['Twitter'] = ""; // Your adress of Twitter comunity
$comun_link['Youtube'] = ""; // Your adress of Youtube comunity

# Important #############

$website['title'] = "Mak";
$website['slogan'] = "Mak un servidor a tu estil ";
$website['address'] = "localhost";
$website['root'] = "/";

######################

$maintenance = false; //Change true(maintenance mode)/false(normal mode) to disable/enable website
if($maintenance == true){
if($bucle_mant == 0 ){
header('Location: maintenance.php');
}
}else{

############

$connection_setup = mysql_connect($serveraddress . ':' . $serverport,$serveruser,$serverpass)or die(mysql_error());
mysql_select_db($server_db,$connection_setup)or die(mysql_error());

if(isset($_SESSION['username'])){
$username = mysql_real_escape_string($_SESSION['username']);
$account_information = mysql_fetch_assoc(mysql_query("SELECT * FROM $server_adb.account WHERE username = '".$username."'"));
$account_extra = mysql_fetch_assoc(mysql_query("SELECT * FROM $server_db.users WHERE id = '".$account_information['id']."'"));
mysql_select_db($server_db,$connection_setup)or die(mysql_error());
}
###########
}
?>

Por makato

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Jul 2012 03:46 am
Hola!

Hasta donde entendí pretendes trabajar con dos bases de datos, sin embargo, eso mismo lo puedes hacer en una sola bd en la que tendrías tus tablas characters y website con sus respectivos campos. No veo la necesidad de tener dos bases de datos separadas.

Para mostrar el dinero y los precios haces una consulta a la bd al cargar la página y controlas los usuarios con variables de sesión. Al realizar una compra seleccionas el precio, lo restas al total de monedas que tiene el usuario y luego actualizas la bd con el nuevo saldo. Para hacerlo más dinámico puedes usar AJAX.

Por último, te recomiendo que cuando pongas código lo encierres entre etiquetas de cógigo para hacerlo más legible:

Código PHP :

$sql = "select... from... where...";
$res = mysql_query($sql) or die(mysql_error());
$datos = mysql_fetch_array($res);
Entonces, así como lo veo, sería:

1. Al cargar la página verificas que exista un usuario registrado.
2. Si el usuario está registrado entonces muestras el dinero que posee en su cuenta.
3. Determina bien cuál será el método de compra. Si podrá seleccionar de uno en uno o harás un carrito, en cuyo caso tendrías que guardar en un array los productos que compre.
4. Al comprar, compruebas que la suma total de las compras sea mayor que el dinero disponible.
5. Si el dinero disponible alcanza, entonces restas la variable que contiene el total de las compras a la variable que contiene el total de dinero en la cuenta del usuario. Si quieres hacerlo más interactivo puedes hacerlo con AJAX.

Te posteo esto porque creo que, antes de escribir extensas líneas de código es importante escribir en palabras lo que se quiere lograr, de este modo se hace más simple y más rápido pasarlo a código cuando tienes la idea clara. Lo digo por experiencia. Jajajajajajaja.

:cool:

Por eareddhel

83 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 12 Jul 2012 04:29 am
buenas grax por la recomendacion y si en micaso es necesario las dbs de echo uso 4
pero ya logre ver las db y pobricar los compos pero me falta aser una resta
mira la tengo asi

Código PHP :

//esta primera parte es para la coneccion sin estar llamando mi confis
<?php 
if(!isset($_SESSION)) session_start();
$serveraddress = "localhost";
$serveruser = "root";
$serverpass = "ascent";
$serverport   = "3306";

$server_db = "website";
$server_adb = "auth";

$server_cdb = "characters";
$server_wdb = "world";

$connection_setup = mysql_connect($serveraddress . ':' . $serverport,$serveruser,$serverpass)or die(mysql_error());
mysql_select_db($server_db,$connection_setup)or die(mysql_error());
mysql_select_db($server_cdb,$connection_setup)or die(mysql_error());
if(isset($_SESSION['username'])){
   $username = mysql_real_escape_string($_SESSION['username']);
   $account_information = mysql_fetch_assoc(mysql_query("SELECT * FROM $server_adb.account WHERE username = '".$username."'"));
   $account_extra = mysql_fetch_assoc(mysql_query("SELECT * FROM $server_db.users WHERE id = '".$account_information['id']."'"));
   mysql_select_db($server_db,$connection_setup)or die(mysql_error());
}


 $login_query = mysql_query("SELECT * FROM $server_adb.account WHERE username = '".mysql_real_escape_string($_SESSION["username"])."'");
    $login2 = mysql_fetch_assoc($login_query);   
   $uI = mysql_query("SELECT * FROM $server_db.users WHERE id = '".$login2['id']."'");
   @$userInfo = mysql_fetch_assoc($uI);

//con estas llamo a comsulta los campo de cada db

$precio = mysql_fetch_array(mysql_query("SELECT * from $server_db.itemshop  WHERE id = 1"));
$money = mysql_fetch_array(mysql_query("SELECT money FROM $server_cdb.characters WHERE guid =".$userInfo['character'].""));
// con esta pretendo llamar la resta con el boton
$money_actual = $money["money"] - $precio["oro"];
$resta1="UPDATE $server_cdb.characters SET money ='".$money_actual."WHERE guid =.".$userInfo['character']."'";
?>
<?php
 echo $precio["oro"]; 
echo $money["money"];
$resultado = $precio["oro"];
$resultado2 = $money["money"]; 
$money_actual = $resultad2 - $resultado;
$resta="UPDATE $server_cdb.characters SET money = ''$money_actual Where guid=".$userInfo['character']."";
?>
<?php
if (mysql_query($resta))
?>
<input type="submit" name="boton" value="restar" />


o esta re mal por que no me hace la resta ni me actuliza la paguina

Por makato

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.