| Ver tema anterior :: Ver siguiente tema |
| Autor |
Mensaje |
ExTeRnAl Moderador


Registrado: 24 Mar 2004
Mensajes: 2526
Ubicación: Montevideo - Uruguay
|
Publicado: Mie Oct 13, 2004 10:54 pm Título del mensaje: Rangos Php-Mysql |
|
|
hola como me dijeron mejor ponelo aki para que todos aprendamos bueno aca va.
Bueque por todos lados y averigue con alguien que ya lo ha hecho pero no me quiere revelar el secreto pero me ha dado pistas...
Quiero hacer algo similar a niveles de usuarios que da el foro cuando nposteas que sube el "rango" o puntos eso es lo de menos
O sea que hacer una pregunta, y al ser contestada mal te de la opcion de volver a formularla
Y si es la correcta se conecte a la db de usuarios ( registro de usuarios previamente instalada) y le de un rango o un punto mas por respuesta contestada
Segun este tipo me dijo necesito un INF y un Query para cuanod la respuesta sea correcta esto de +1 y si la respuesta dos es corecta sea 1+= +1 :S la verdad no entiendo mucho...
Y para ponerle rango seria algo que no me dijo que sea lvl 2 o puntaje 2 = Novato por ejemplo
pero si alguien me ayuda le agradeceria
Salu2 _________________
|
|
| Volver arriba |
|
 |
Link Forero


Registrado: 07 Sep 2004
Mensajes: 123
|
Publicado: Vie Oct 15, 2004 12:10 pm Título del mensaje: |
|
|
bueno no estoy muy seguro si es esto lo que buscas pero espero que te sirva...aqui va:
acabo de hacer dos paginas para mostrarte, una es el formulario que enviara la respuesta a la pagina php..un formulario simple... se llama pregunta.php y este es su codigo:
PREGUNTA.PHP
<html>
<body bgcolor = black text = yellow>
<center><h1>¿quieres subir de puntaje?</h1></center>
<p>
<form action = rango.php method = post>
<b>SI<input type = radio name = opt value = si>
<p>
NO<input type = radio name = opt value = no>
<p>
<input type = submit value = aceptar>
</form>
</body>
</html>
despues necesitamos la pagina que se conecte con la base de datos, la pagina php...... y la llame rango.php y aqui esta su codigo:
RANGO.PHP
<html>
<body bgcolor = black text = yellow>
<center><h1>bienvenido</h1></center>
<?
function sqlfix($s)
{
return "'".mysql_escape_string($s)."'";
}
$a = "link";
$coneccion = mysql_connect("localhost","","");
mysql_select_db("mipagina",$coneccion);
$sql = 'select * from usuarios where usuario ='.sqlfix($a);
$id = mysql_query($sql,$coneccion);
$r = mysql_fetch_array($id);
if ($opt == "si")
{
$sql = 'update usuarios set aciertos = aciertos + 1 where usuario ='.sqlfix($a);
mysql_query($sql,$coneccion);
echo " gracias";
$sql = 'select * from usuarios where usuario ='.sqlfix($a);
$id = mysql_query($sql,$coneccion);
$r = mysql_fetch_array($id);
if ($r["aciertos"] <= 2)
{
$sql = 'update usuarios set rango = "novato" where usuario ='.sqlfix($a);
mysql_query($sql,$coneccion);
}
if ($r["aciertos"] > 2)
{
$sql = 'update usuarios set rango = "intermedio" where usuario ='.sqlfix($a);
mysql_query($sql,$coneccion);
}
if ($r["aciertos"] > 4)
{
$sql = 'update usuarios set rango = "experto" where usuario ='.sqlfix($a);
mysql_query($sql,$coneccion);
}
}
else
echo("<font color = yellow>vuelva a participar</font>");
$sql = 'select * from usuarios where usuario ='.sqlfix($a);
$id = mysql_query($sql,$coneccion);
$r = mysql_fetch_array($id);
echo "<p>";
echo "su record es:<p>";
echo "<table border = 2 bordercolor = yellow>";
echo "<tr><td>usuario<td>aciertos<td>rango</td></tr>";
echo "<tr><td>".$r["usuario"]."<td>".$r["aciertos"]."<td>".$r["rango"]."</td></tr>";
echo "</table>";
?>
</body>
</html>
para este ejemplo use una base de datos llamada "mipagina" y una tabla llamada "usuarios"
la tabla usuarios tenia los siguientes campos: usuario "varchar(20)" , pass "varchar(20)", aciertos "integer", rango "varchar(20)".
los campos que nos interesan aqui son usuario , aciertos y rango ...el password no por que estamos suponiendo que el usuario ya se ha logueado
en esa pagina php estamos suponiendo que el usuario "link" esta logueado asi que la sentencia sql va directamente a su registro.....(una aclaracion en la parte de mysql_connect("localhost","",""); uso localhost porque probe esta pagina en mi computadora instalando el appserv)...bueno si la respuesta es "si" entonces le subira un punto en el campo aciertos y luego de hacer eso verifica cuantos aciertos tiene...si tiene menos de dos le asignara el rango "novato" si tiene mas de dos le asignara el rango "intermedio" y si tiene mas de 4 le asignara el rango "experto"...despues de eso le mostrara su "ranking" es decir, su nombre de usuario, numero de aciertos y su rango.
Y si la respuesta es "no" entonces solo le mostrara su "ranking" y le pedira que vuelva a intentarlo(obviamente la pregunta es solo de prueba al contestar que si estamos suponiendo que responsio bien la pregunta y al contestar que no que la contesto mal)
bueno eso seria todo..yo hice estos ejemplos asi que si tienes alguna duda o algo no esta claro me avisas....bueno espero que te haya servido
saludos |
|
| Volver arriba |
|
 |
ExTeRnAl Moderador


Registrado: 24 Mar 2004
Mensajes: 2526
Ubicación: Montevideo - Uruguay
|
Publicado: Sab Oct 16, 2004 12:35 am Título del mensaje: |
|
|
excelente es lo que buscaba, pero no lo he podido meter en mi db llamada usuarios1 o sea cambio el formualrio para que se conecte a esa db :S pero no agrega nada a la db n entiendo
sigo probando, si njo me pasas la db que usaste y la uso como ejemplo
Salu y muchas gracias  _________________
|
|
| Volver arriba |
|
 |
Link Forero


Registrado: 07 Sep 2004
Mensajes: 123
|
Publicado: Sab Oct 16, 2004 8:39 am Título del mensaje: |
|
|
me alegro que te sirva ...bueno cambia esto y deberia funcionar sin ningun problema:
RANGO.PHP
<html>
<body bgcolor = black text = yellow>
<center><h1>bienvenido</h1></center>
<?
function sqlfix($s)
{
return "'".mysql_escape_string($s)."'";
}
$coneccion = mysql_connect("nombre del servidor","usuario del servidor","contraseña del servidor");
mysql_select_db("nombre de tu db",$coneccion);
$sql = 'select * from nombre de tu tabla where nombre del campo en el que se guardan los nombres de usuarios ='.sqlfix($a); <--$a es el nombre del usuario-->
$id = mysql_query($sql,$coneccion);
$r = mysql_fetch_array($id);
if ($opt == "si")
{
$sql = 'update nombre de tu tabla set aciertos = aciertos + 1 where usuario ='.sqlfix($a);
mysql_query($sql,$coneccion);
echo " gracias";
$sql = 'select * from nombre de tu tabla where nombre del campo en el que se guardan los nombres de usuarios ='.sqlfix($a);
$id = mysql_query($sql,$coneccion);
$r = mysql_fetch_array($id);
if ($r["aciertos"] <= 2)
{
$sql = 'update nombre de tu tabla set rango = "novato" where nombre del campo en el que se guardan los nombres de usuarios ='.sqlfix($a);
mysql_query($sql,$coneccion);
}
if ($r["aciertos"] > 2)
{
$sql = 'update nombre de tu tabla set rango = "intermedio" where nombre del campo en el que se guardan los nombres de usuarios ='.sqlfix($a);
mysql_query($sql,$coneccion);
}
if ($r["aciertos"] > 4)
{
$sql = 'update nombre de tu tabla set rango = "experto" where nombre del campo en el que se guardan los nombres de usuarios ='.sqlfix($a);
mysql_query($sql,$coneccion);
}
}
else
echo("<font color = yellow>vuelva a participar</font>");
$sql = 'select * from nombre de tu tabla where nombre del campo en el que se guardan los nombres de usuarios ='.sqlfix($a);
$id = mysql_query($sql,$coneccion);
$r = mysql_fetch_array($id);
echo "<p>";
echo "su record es:<p>";
echo "<table border = 2 bordercolor = yellow>";
echo "<tr><td>usuario<td>aciertos<td>rango</td></tr>";
echo "<tr><td>".$r["nombre del campo en el que se guardan los nombres de usuarios"]."<td>".$r["aciertos"]."<td>".$r["rango"]."</td></tr>";
echo "</table>";
?>
</body>
</html>
aqui estoy suponiendo que tienes los campos "aciertos" y "rango" claro que pueden estar con otro nombre solo lo cambias pero esos campos son indispensables para verificar su "ranking" ...la base de datos que yo use tenia 3 campos fundamentales: usuario "varchar(20)" , aciertos "integer", rango "varchar(20)".
varchar e integer son los tipos de datos que se pueden introducir en esos campos
eso seria todo supongo...si no te funciona posteas cualquier duda y si puedo te ayudo...me dices que error te da o si quieres tambien te puedo pasar mi base de datos por messenger solo me añades
espero que te sirva
saludos |
|
| Volver arriba |
|
 |
bacano Forero


Registrado: 13 Ene 2004
Mensajes: 134
Ubicación: barcelona
|
Publicado: Lun Oct 18, 2004 2:26 pm Título del mensaje: |
|
|
han ido mas rapido que yo en estas,...sorry, es que tengo mucho trabajo, muchas llamadas.... _________________ A mi no me importa si tengo razon ò no !!!!
lo que me importa es saber en lo que crees. !
|
|
| Volver arriba |
|
 |
|
|
|