Autor Tema: ¿ Como Subir de posición una fila en Bases De Datos ?  (Leído 10700 veces)

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Hola comunidad ... trabajando con MySQL tengo el siguiente código que e realizado ... en el siguiente código tengo una tabla en la base de datos .. la cual quiero actualizar las posiciones de lo equipos de juego ! .. quiero hacer que la posición numero 6 del equipo de juego quede ubicada en la tabla en la posición numero 1 ó que se ruede a la posición de arriba por sus puntos obtenido .. Mi Pregunta seria la siguiente .......

Cual es y como coloco la Función de MySQL que me hace rodar las filas ó las posiciones en la Base De Datos En la tabla por puntos ganados ?

Código: [Seleccionar]
<?php
$equipo1
=$_POST['equipo1'];
$equipo2=$_POST['equipo2'];
$goles1=$_POST['goles1'];
$goles2=$_POST['goles2'];
$conecta=mysql_connect("localhost","root","");
if(
$conecta){
mysql_select_db("liga",$conecta);
if(
$goles1==$goles2){
mysql_query("update tabladeposiciones set pe=pe+1, pj=pj+1, gf=gf+'$goles1', gc=gc+'$goles2', gd=gf-gc, pts=pts+1 where equipos='$equipo1' or equipos='$equipo2'");
echo 
"Ok se actualizo el empate entre ".$equipo1."y".$equipo2." actualice en phpAdmin Verifique";
}
if(
$goles1>$goles2){ 
mysql_query("update tabladeposiciones set pg=pg+1, pj=pj+1, gf=gf+'$goles1', gc=gc+'$goles2', gd=gf-gc, pts=pts+3 where equipos='$equipo1'");
mysql_query("update tabladeposiciones set pp=pp+1, pj=pj+1, gf=gf+'$goles2', gc=gc+'$goles1', gd=gf-gc where equipos='$equipo2'");
echo 
"Ok se actualizo Victoria ".$equipo1."sobre el ".$equipo2." actualice en phpAdmin Verifique";
}
if(
$goles1<$goles2){
mysql_query("update tabladeposiciones set pp=pp+1, pj=pj+1, gf=gf+'$goles1', gc=gc+'$goles2', gd=gf-gc where equipos='$equipo1'");
mysql_query("update tabladeposiciones set pg=pg+1, pj=pj+1, gf=gf+'$goles2', gc=gc+'$goles1', gd=gf-gc, pts=pts+3 where equipos='$equipo2'");
echo 
"Ok se actualizo Vicoria ".$equipo2."sobre el ".$equipo1." actualice en phpAdmin Verifique";
}
mysql_close($conecta);
}
else{
echo
"lo sentimos no fue posible la conexion con My_sql";
}
?>

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:¿ Como Subir de posición una fila en Bases De Datos ?
« Respuesta #1 en: 18 de Octubre 2013, 05:08 »
Los estoy ordenando con esta función de MySQL pero no me corre la fila, insertándolo en cada siclo if
-----------------------------------------------------------------------------------------------------
Código: [Seleccionar]
mysql_query("SELECT pos, equipos, pj, pg, pe, pp, gf, gc, gd, gfv, gcv, pts FROM tabladeposiciones ORDER BY pts desc");

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:¿ Como Subir de posición una fila en Bases De Datos ?
« Respuesta #2 en: 18 de Octubre 2013, 08:23 »
Cuando tienes una tabla no puedes alterar las posiciones de sus filas, ya que mysql las ordena automáticamente a medida que se van insertando. Lo que sí puedes hacer es realizar una consulta dándole el orden que tú quieras en base a un criterio. Las tablas se usan simplemente para almacenar información sin tener que respetar un orden, luego el orden lo creas cuando haces las consultas y así sacas la información ordenada.

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:¿ Como Subir de posición una fila en Bases De Datos ?
« Respuesta #3 en: 18 de Octubre 2013, 14:59 »
Bueno sigo sin entender ! como podría subir las filas ?

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:¿ Como Subir de posición una fila en Bases De Datos ?
« Respuesta #4 en: 18 de Octubre 2013, 15:22 »
ya le di el orden en base a un criterio y no me deja ! con esta funcion ORDER BY

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:¿ Como Subir de posición una fila en Bases De Datos ?
« Respuesta #5 en: 18 de Octubre 2013, 16:32 »
Lo primero que seria lógico hacer es entrar en MySql y comprobar que la sintaxis la tenga correcta. Para ello accede al cPanel y luego a phpMyAdmin y ejecuta una orden como esta:

SELECT pos, equipos, pj, pg, pe, pp, gf, gc, gd, gfv, gcv, pts FROM tabladeposiciones ORDER BY pts DESC

Tienes que comprobar que el resultado que obtienes sea correcto, el resultado tiene que ser una tabla con 12 columnas. Si no es correcto puede pasar que:

- No existe un campo denominado pts en la tabla
- El campo pts está vacío o es NULL

Si en phpMyAdmin no te sale tampoco te saldrá desde código

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:¿ Como Subir de posición una fila en Bases De Datos ?
« Respuesta #6 en: 18 de Octubre 2013, 20:59 »
Mastermind si ... !! efectivamente lo ejecute desde la consola de phpmyadmin y me corrió las fila quisiera saber como lo coloco en el código

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:¿ Como Subir de posición una fila en Bases De Datos ?
« Respuesta #7 en: 18 de Octubre 2013, 21:18 »
en que parte del código y como va la sintaxis para que me pueda correr las filas ?

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:¿ Como Subir de posición una fila en Bases De Datos ?
« Respuesta #8 en: 19 de Octubre 2013, 17:40 »
Una vez realizas la consulta en php el resultado ya lo obtienes ordenado, lo único que te es necesario es recorrer las filas del resultado y en cada fila extraer la información que quieras mostrar. Por ejemplo (aquí los datos de la base de datos son imaginarios):

Código: [Seleccionar]
<html> // Ejemplo php con bases de datos aprenderaprogramar.com

<body>

<?php

$link 
mysql_connect("sql203.byethost7.com""b7_10356956""*****");

mysql_select_db("b7_10356956_mibasededatos"$link);

$result mysql_query("SELECT pos, equipos, pj, pg, pe, pp, gf, gc, gd, gfv, gcv, pts FROM tabladeposiciones ORDER BY pts DESC"$link);

// comienza un bucle que leerá todos los registros existentes

while($row mysql_fetch_array($result)) {

// $row es un array con todos los campos existentes en la tabla

echo "<hr>";

echo 
"Posicion: ".$row['pos']."<br>";

echo 
"Equipo: ".$row['equipos']."<br>";

echo 
"Partidos jugados: ".$row['pj']."<br>";

echo 
"Partidos ganados:".$row['pg']."<br>";

echo 
"Partidos empatados:".$row['pe']."<br>";

echo 
"Y asi continuamos extrayendo campos"<br>";

} // fin del bucle de instrucciones

mysql_free_result(
$result); // Liberamos los registros

mysql_close(
$link); // Cerramos la conexion con la base de datos

echo "
<hr>";

?>


</body>

</html>

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".