Hola, estoy haciendo una aplicaciones que tiene que coger los usuarios aleatoriamente según el número generado y los empareje en otra tabla.
Ha sido bastante tedioso pero estoy en el último paso y la verdad es que no sé que me pasa.
Cuando ejecuto la consulta en phpMyAdmin funciona pero en mi script no y la verdad es que es un poco horrible ya xD.
os dejo el código:
Código PHP:
case 2:
echo '<center>HACER tablas de combate. </center>';
$query = "DROP TABLE `nuke_juego_temp`;";
$db->sql_query($query);
$query = "CREATE TABLE `nuke_juego_temp` (`jug1` VARCHAR( 20 ) NOT NULL ,`jug2` VARCHAR( 20 ) NOT NULL ,`ent1` INT NOT NULL ,`ent2` INT NOT NULL ,`prob1` INT NOT NULL ,`prob2` INT NOT NULL) ENGINE = MYISAM ;";
$db->sql_query($query);
echo '<center>Base de datos borrada y recreada con éxito</center><br>';
$query = "SELECT * FROM nuke_juego";
$result = $db->sql_query($query);
$cuantos = $db->sql_numrows($result);
if ($cuantos%2){
$cuantos = $cuantos-1;}
$num = Array();
reset($num);
$num = Array();
reset($num);
for($i=1;$i<=$cuantos;$i++)
{
$num[$i]=rand(1,$cuantos);
if($i>1)
{
for($x=1; $x<$i; $x++)
{
if($num[$i]==$num[$x])
{
$i--;
break;
}
}
}
}
$numveces=0;
foreach($num as $valor){
$numveces++;
$query = "SELECT * FROM nuke_juego";
$result = $db->sql_query($query);
$contador = 0;
while ($row = $db->sql_fetchrow($result)){
$contador++;
$player = $row['usuario'];
$striking = $row['striking'];
$grappling = $row['grappling'];
$moral = $row['moral'];
$probabilidad = $striking + $grappling + $moral;
if ($contador == $valor){
if ($numveces % 2){
$insertar = "INSERT INTO `". $dbname ."`.`nuke_juego_temp` (`jug1` ,`prob1`)VALUES ('". $player ."', '". $probabilidad ."');";
$db->sql_query($insertar);
$anterior = $player;
echo $anterior;
echo'<br>';
}
else{
echo $player;
echo'<br>';
$insertar = "UPDATE `". $dbname ."`.`nuke_juego_temp` SET `jug2` = '". $player ."',`prob2` = '". $probabilidad ." WHERE `jug1` ='". $anterior ."'";
$db->sql_query($insertar);
}
break;
}
}
}
echo 'Generados los emparejamientos correctamente.';
break;
El código borra y crea la base de datos. Para borrar todos los campos existe alguna función? TRUNCATE no? así me ahorraría un paso creo.
Luego se genera los números aleatorios.
Se avanza en el array
buscando al usuario que está en la base de datos (no hay id si no que se hace con contadores avanzando lentamente sólo se me ocurre esto).
Una vez llega al sitio se evalúa si es par o impar. Si es par crea tabla . Si es impar lo mete donde el usuario coincida con el anterior.
El caso es que si yo ejecuto la consulta en phpmyadmin me lo modifica y aquí no.
Es decir, ahora tengo como resultado para 6 jugadores. 3 usuarios metidos en campo 1 y el campo 2 vacío :S
Si alguien me puede ayudar se lo agradecería. Llevo bastantes dolores de cabeza con esto y es que no sé SQL y hago lo que puedo xD