Tengo una tabla en MYSQL la cual consta de lo siguiente:
CREATE TABLE IF NOT EXISTS `projects` (
`id` int(11) NOT NULL default '0',
`nombre` varchar(30) NOT NULL default '',
`nombre2` varchar(30) NOT NULL default '',
`info` varchar(40) NOT NULL default '',
`info2` varchar(40) NOT NULL default '',
`year` varchar(20) NOT NULL default '',
`location` varchar(40) NOT NULL default '',
`foto` varchar(70) NOT NULL default '',
`foto1` text NOT NULL,
`foto2` text NOT NULL,
`foto3` text NOT NULL,
`foto4` text NOT NULL,
`foto5` varchar(200) NOT NULL default '',
`foto6` varchar(200) NOT NULL default '',
`foto7` varchar(200) NOT NULL default '',
`foto8` varchar(200) NOT NULL default '',
`foto9` varchar(200) NOT NULL default '',
`foto10` varchar(200) NOT NULL default '',
`foto11` varchar(200) NOT NULL default '',
PRIMARY KEY (`id`)
Tenemos un Panel de Control en el cual los usuarios pueden eliminar las fotos, aquí es cuando viene el problema.
Al eliminar una foto queremos que toda la tabla se reordene por número corelativos. Es decir, si eliminamos foto3 : foto 4 pasa a ser la foto3 y sucesivamente.
Este es el codigo en cuestión:
Código PHP:
if($_GET['foto_o']){
$foto_o = addslashes($_GET['foto_o']);
$p = addslashes($_GET['p']);
$result = mysql_query("SELECT * FROM projects WHERE id='$p'") ;
while($row = mysql_fetch_array( $result )) {
$foto = $row['foto'];
$foto1 = $row['foto1'];
$foto2 = $row['foto2'];
$foto3 = $row['foto3'];
$foto4 = $row['foto4'];
$foto5 = $row['foto5'];
$foto6 = $row['foto6'];
$foto7 = $row['foto7'];
$foto8 = $row['foto8'];
$foto9 = $row['foto9'];
$foto10 = $row['foto10'];
$foto11 = $row['foto11'];
$fotos = array();
$fotos[1]=$foto1;
$fotos[2]=$foto2;
$fotos[3]=$foto3;
$fotos[4]=$foto4;
$fotos[5]=$foto5;
$fotos[6]=$foto6;
$fotos[7]=$foto7;
$fotos[8]=$foto8;
$fotos[9]=$foto9;
$fotos[10]=$foto10;
$fotos[11]=$foto11;
}
$nom_e = "foto".$foto_o;
$num=12;
$num2 = 0;
echo "La foto que vas a borrar es: " ; echo $foto_o; echo "<br>";
while($num2<$num){
echo $num2;
if($num2<foto_o){echo "MENOR";}
if($num2==foto_o){
echo "IGUAL";
if($num2==0){ $name_n = "foto"; } else { $name_n = "foto".$num2; }
$result = mysql_query("UPDATE projects SET $num2='' WHERE id='$p'") ;}
if($num2>foto_o){
echo "MAYOR";
$num_n = $num2-1;
$nom_e = "foto".$num_n;
$result = mysql_query("UPDATE projects SET $nom_e='$fotos[$num2]' WHERE id='$p'") ;}
$num2++;
}
$status = "La foto se ha eliminado correctamente";
}
El problema se presenta cuando las comparaciones no las hace. Ejemplo: Eliminamos FOTO NUMERO 3 (foto3) y el resultado que devuelve es : 0 = 3, en vez de seguir el flujo del código, cuando tendria que ser, logicamente, MENOR QUE 3 Y simplemente mostrar el mensaje: MENOR.
Muchisimas gracias de antemano, toda ayuda es bien recibida.
Gracias.
P.D.: Si sabeis alguna otra fórmula mejor, compartidla por favor.