Tengo 3 BBDD: noticias, tags y cat. La BBDD relacional de las 3 es tags; 'cat' va definiendo las categorías. En principio es un sistema sencillo y cada vez que se añaden y borran no hay problema. El gran problema es cuando entra a la edición de TAGS, de momento respeta la primera norma de que si no se edita algún tag, lo deja como está. Cuando cambias un tag ya pasa a otro if y ahí es donde no consigo que pase, para ello primero tengo que comparar lo insertado con el tag existente, si existe le borra y le vuelve a añadir (un editar sin más). No se si me he explicado adecuadamente ya que soy bastante novel programando y hago lo que puedo, aprovecho para decir que el código seguramente no esté muy depurado y se pueda rehacer algunos detalles más.
$CFG_tagslimite viene del config general, es para limitar los tags. Cada vez que se crea un input, se crea con el nombre de 'cat'+'número de 0 en adelante puesto automáticamente' (por ej.: cat3). ¡Cualquier duda preguntármela!
Código PHP:
$e3 = 0;
while($e3 < $CFtagslimite) {
$pcat = "cat$e3";
$rep3 = $_POST['cat'.$e3.''];
if(!empty($rep3)){
// Editando...
$queryET = mysql_query("SELECT * FROM cat where categoria = '$_POST[$pcat]'", $conexion);
while($rowET=mysql_fetch_array($queryET)) {
$categoriaET = $rowET['categoria'];
$catET = $rowET['id'];
}
if(mysql_num_rows($queryET)==0) {
// Si no existe se crea...
$queryT = "INSERT INTO tags (id_noticia, id_cat) values ('$_GET[id]', '$catET')";
mysql_query($queryT) or die(mysql_error());
$queryT0 = "INSERT INTO cat (categoria) values ('$_POST[$pcat]')";
mysql_query($queryT0) or die(mysql_error());
} else {
// Si existe se elimina y se vuelve a crear...
$queryET2 = mysql_query("SELECT * FROM cat where categoria = '$_POST[$pcat]'", $conexion);
while($rowET2=mysql_fetch_array($queryET2)) {
$categoriaET2 = $rowET2['categoria'];
$catET2 = $rowET2['id'];
}
if(mysql_num_rows($queryET2)==0) {
$queryT1 = "DELETE FROM cat WHERE id = '$catET3'";
mysql_query($queryT1) or die(mysql_error());
$queryT2 = "DELETE FROM tags WHERE id_noticia = '$_GET[id]' and id_cat = '$catET'";
mysql_query($queryT2) or die(mysql_error());
$queryT3 = "INSERT INTO tags (id_noticia, id_cat) values ('$_GET[id]', '$catET')";
mysql_query($queryT3) or die(mysql_error());
$queryT4 = "INSERT INTO cat (categoria) values ('$_POST[$pcat]')";
mysql_query($queryT4) or die(mysql_error());
}
}
}
$e3++;
}