Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Generador de tablas aleatorio

Estas en el tema de Generador de tablas aleatorio en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 01/11/2008, 08:42
 
Fecha de Ingreso: septiembre-2005
Mensajes: 12
Antigüedad: 18 años, 7 meses
Puntos: 0
Generador de tablas aleatorio

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
  #2 (permalink)  
Antiguo 01/11/2008, 08:52
 
Fecha de Ingreso: septiembre-2005
Mensajes: 12
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Generador de tablas aleatorio

xd. Acabo de aprender el or die en un libro y he visto que la consulta tenía erro XD.

Perdonad por las molestas que os haya podido causar que alegria me da xD
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 22:01.