Foros del Web » Programando para Internet » PHP »

Hacer que PHP cheque una tabla Mysql para imponer una condicion

Estas en el tema de Hacer que PHP cheque una tabla Mysql para imponer una condicion en el foro de PHP en Foros del Web. Bueno este es un problema que tengo actualmente, trato de hacer un sistema de Rebirth para un juego, basado en Web, me gustaria ponerle un ...
  #1 (permalink)  
Antiguo 08/07/2008, 23:04
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Hacer que PHP cheque una tabla Mysql para imponer una condicion

Bueno este es un problema que tengo actualmente, trato de hacer un sistema de Rebirth para un juego, basado en Web, me gustaria ponerle un limite de 3 rebirths.
Existe una tabla, Characters > Rebirth
y cada rebirth se agrega una suma de 1 por cada rebirth que se hace.

Quisiera hacer que este, imponga una condicion, que cuando vea que este supere el numero 3 de rebirths, ponga un error sobre que no se puede hacer más.

Lo siento pero he estado explorando esto un rato grande y me salta muchos errores, y es que aun no soy tan experto en PHP.

Código PHP:
<!-- Main Content Start -->
<div id="primarycontent">
        
            <!-- Primary Content Start -->

            <div class="post">
                <div class="header">
                    <h3>RockMS Rebirth Web!</h3>
                </div>
<div class="content">
                    <p><font size=+1><b>D</b></font>id you reach <strong><u><font color=blue>Level 200</font></u></strong> Fill out this form and reborn your character! You'll get a fresh start as a <strong><u><font color=blue>Lv01 Beginner</font></u></strong></p>
                </div>    
<?php
// process the script only if the form has been submitted
if (array_key_exists('reset'$_POST)) {
include(
'config2.php'); 
// start the session
$username trim($_POST['username']);
$password trim($_POST['password']);
$character trim($_POST['character']);
$level trim($_POST['level']);
$idchar trim($_POST['id']);
$username mysql_real_escape_string($username);
$result mysql_query("SELECT level FROM characters WHERE name = '$character'");
list(
$level) = mysql_fetch_row($result);
$result mysql_query("SELECT id FROM characters WHERE name = '$character'");
list(
$idchar) = mysql_fetch_row($result);

$sql "SELECT * FROM accounts WHERE name = '$username'";
$result mysql_query($sql);
$row mysql_fetch_assoc($result);
if (
hash('sha512'$password.$row['salt']) == $row['password'] && $level >=200) {
mysql_query("UPDATE characters SET ap = 9 WHERE name='$character'");
mysql_query("UPDATE characters SET level = 1 WHERE name='$character'");
mysql_query("UPDATE characters SET job = 0 WHERE name='$character'");
mysql_query("UPDATE characters SET `int` = 4 WHERE name='$character'");
mysql_query("UPDATE characters SET str = 4 WHERE name='$character'");
mysql_query("UPDATE characters SET dex = 4 WHERE name='$character'");
mysql_query("UPDATE characters SET luk = 4 WHERE name='$character'");
mysql_query("UPDATE characters SET exp = 0 WHERE name='$character'");
mysql_query("UPDATE characters SET hp = 50 WHERE name='$character'");
mysql_query("UPDATE characters SET maxhp = 50 WHERE name='$character'");
mysql_query("UPDATE characters SET mp = 50 WHERE name='$character'");
mysql_query("UPDATE characters SET maxmp = 50 WHERE name='$character'");
mysql_query("UPDATE characters SET sp = 0 WHERE name='$character'");
mysql_query("UPDATE characters SET rebirth = rebirth + 1 WHERE name='$character'");
mysql_query("DELETE FROM skills WHERE characterid=$idchar");
$result mysql_query or die(mysql_error());
if (
$result) {
$message[] = "$character has been Reborn!<br />
Go <strong><u>play</u></strong> and <strong><u>own</u></strong>!"
;
}
}
else {
$message[] = "There was a problem reborning $character. Please make sure you entered all the fields correctly and you are level 200 or above.";
}
}
?>
<!-- start content -->
<link rel="stylesheet" href="style2.css" type="text/css">
<div class='welcome'><strong>Character Rebirth</strong></div>
<div align="center">
<div class="display">
<?php
if (isset($message)) {
echo 
'<ul>';
foreach (
$message as $item) {
echo 
"<li>$item</li>";
}
echo 
'</ul>';
}
?>
</div>
<form id="form1" name="form1" method="post" action="">
<table cellspacing="0" cellpadding="5" width="100%">
<tr>
<td width="20%" align="left" class="list">Account Name :</td>
<td class="list"><input id="username" type="text" name="username" maxlength="12"></td>
</tr>
<tr>
<td width="20%" align="left" class="list">Password :</td>
<td class="list"><input id="password" type="password" name="password" maxlength="20" /></td>
</tr>
<tr>
<td width="20%" align="left" class="list">Character :</td>
<td class="list"><input id="character" type="character" name="character" maxlength="20" /></td>
</tr>
<tr>
<td align="left" colspan="2"><input id="reset" name="reset" type="submit" value="Reborn NOW!" /></td>
</tr>
</table>
</form>
</div>
<!-- end content --> 
            </div>

                            <!-- Primary Content End -->
    
<!-- Main Content End -->

Última edición por gasparmx; 08/07/2008 a las 23:12
  #2 (permalink)  
Antiguo 09/07/2008, 02:49
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Hacer que PHP cheque una tabla Mysql para imponer una condicion

Buenas

Cita:
Iniciado por gasparmx Ver Mensaje
Código PHP:
<!-- Main Content Start -->
<div id="primarycontent">
        
            <!-- Primary Content Start -->

            <div class="post">
                <div class="header">
                    <h3>RockMS Rebirth Web!</h3>
                </div>
<div class="content">
                    <p><font size=+1><b>D</b></font>id you reach <strong><u><font color=blue>Level 200</font></u></strong> Fill out this form and reborn your character! You'll get a fresh start as a <strong><u><font color=blue>Lv01 Beginner</font></u></strong></p>
                </div>    
<?php
// process the script only if the form has been submitted
if (array_key_exists('reset'$_POST)) {
include(
'config2.php'); 
// start the session
$username trim($_POST['username']);
$password trim($_POST['password']);
$character trim($_POST['character']);
$level trim($_POST['level']);
$idchar trim($_POST['id']);
$username mysql_real_escape_string($username);
$result mysql_query("SELECT level FROM characters WHERE name = '$character'");
list(
$level) = mysql_fetch_row($result);
$result mysql_query("SELECT id FROM characters WHERE name = '$character'");
list(
$idchar) = mysql_fetch_row($result);

$sql "SELECT * FROM accounts WHERE name = '$username'";
$result mysql_query($sql);
$row mysql_fetch_assoc($result);
if (
hash('sha512'$password.$row['salt']) == $row['password'] && $level >=200) {
mysql_query("UPDATE characters SET ap = 9 WHERE name='$character'");
mysql_query("UPDATE characters SET level = 1 WHERE name='$character'");
mysql_query("UPDATE characters SET job = 0 WHERE name='$character'");
mysql_query("UPDATE characters SET `int` = 4 WHERE name='$character'");
mysql_query("UPDATE characters SET str = 4 WHERE name='$character'");
mysql_query("UPDATE characters SET dex = 4 WHERE name='$character'");
mysql_query("UPDATE characters SET luk = 4 WHERE name='$character'");
mysql_query("UPDATE characters SET exp = 0 WHERE name='$character'");
mysql_query("UPDATE characters SET hp = 50 WHERE name='$character'");
mysql_query("UPDATE characters SET maxhp = 50 WHERE name='$character'");
mysql_query("UPDATE characters SET mp = 50 WHERE name='$character'");
mysql_query("UPDATE characters SET maxmp = 50 WHERE name='$character'");
mysql_query("UPDATE characters SET sp = 0 WHERE name='$character'");
mysql_query("UPDATE characters SET rebirth = rebirth + 1 WHERE name='$character'");
mysql_query("DELETE FROM skills WHERE characterid=$idchar");
$result mysql_query or die(mysql_error());
if (
$result) {
$message[] = "$character has been Reborn!<br />
Go <strong><u>play</u></strong> and <strong><u>own</u></strong>!"
;
}
}
else {
$message[] = "There was a problem reborning $character. Please make sure you entered all the fields correctly and you are level 200 or above.";
}
}
?>
<!-- start content -->
<link rel="stylesheet" href="style2.css" type="text/css">
<div class='welcome'><strong>Character Rebirth</strong></div>
<div align="center">
<div class="display">
<?php
if (isset($message)) {
echo 
'<ul>';
foreach (
$message as $item) {
echo 
"<li>$item</li>";
}
echo 
'</ul>';
}
?>
</div>
<form id="form1" name="form1" method="post" action="">
<table cellspacing="0" cellpadding="5" width="100%">
<tr>
<td width="20%" align="left" class="list">Account Name :</td>
<td class="list"><input id="username" type="text" name="username" maxlength="12"></td>
</tr>
<tr>
<td width="20%" align="left" class="list">Password :</td>
<td class="list"><input id="password" type="password" name="password" maxlength="20" /></td>
</tr>
<tr>
<td width="20%" align="left" class="list">Character :</td>
<td class="list"><input id="character" type="character" name="character" maxlength="20" /></td>
</tr>
<tr>
<td align="left" colspan="2"><input id="reset" name="reset" type="submit" value="Reborn NOW!" /></td>
</tr>
</table>
</form>
</div>
<!-- end content --> 
            </div>

                            <!-- Primary Content End -->
    
<!-- Main Content End -->


$sql = "SELECT rebirth FROM accounts WHERE name = '$username'";
$consulta=mysql_query($sql);
$resultado=mysql_fetch_row($consulta);
$numRebirth=$resultado[0];

if (hash('sha512', $password.$row['salt']) == $row['password'] && $level >=200 && $numRebirth<3) {

Prueba a ver.. Algo así? Si el rebirth es 3 o más, ya no entra en la función
  #3 (permalink)  
Antiguo 09/07/2008, 06:10
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Hacer que PHP cheque una tabla Mysql para imponer una condicion

Cita:
Iniciado por Kamae Ver Mensaje
Buenas





$sql = "SELECT rebirth FROM accounts WHERE name = '$username'";
$consulta=mysql_query($sql);
$resultado=mysql_fetch_row($consulta);
$numRebirth=$resultado[0];

if (hash('sha512', $password.$row['salt']) == $row['password'] && $level >=200 && $numRebirth<3) {

Prueba a ver.. Algo así? Si el rebirth es 3 o más, ya no entra en la función
Lo estuve probando un buen rato y lo metia donde esta
Código PHP:
$sql "SELECT * FROM accounts WHERE name = '$username'";
$result mysql_query($sql);
$row mysql_fetch_assoc($result);
if (
hash('sha512'$password.$row['salt']) == $row['password'] && $level >=200) { 
pero me tira error porque rebirth esta en la tabla characters xD y no creo poder cambiar accouns a characters si no la funcion de username y password dejaria de servir y tirari mas error y multiplique este valor $sql = "SELECT rebirth FROM characters WHERE name = '$idchar'"; pero parece que tira mas error.

igual cuando termine de buscar como hacerlo por algun lado o aqui lo pondre para futuras referencias, si alguien lo nesesita.

Última edición por gasparmx; 09/07/2008 a las 06:19
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 18:30.