Perdonad mi ignorancia, pero como decía al principio estoy en proceso de aprendizaje. Creo que no he explicado bien mis intenciones, así os las detallaré para que podáis echarme un cable.
Tengo dos tablas con los campos siguientes:
- clientes: (NIF, titular, calle, numero,... municipio, ...)
- calles: (ID, via, calle, municipio)
Donde
clientes.NIF es una clave primaria y única de clientes,
calles.ID es la clave primaria y única de clientes, y donde los campos
calle-municipio de "calles" forman una clave única.
Por otro lado, tengo una página en PHP que realiza la siguiente consulta:
Seleccionar en la tabla "clientes" todas las calles que no existan en la tabla "calles" e insertarlas en ésta. Es decir, una especie de actualización de la tabla "calles" en función de "clientes".
Aquí surge el problema. Si hago ésto:
Código:
$result = mysql_db_query("datos","SELECT * FROM clientes",$db);
while($row = mysql_fetch_array($result)){
$insercion="INSERT INTO calles (ID, VIA, CALLE, MUNICIPIO)
VALUES (NULL,'".$row["VIA"]."','".$row["Calle"]."','".$row["Municipio"]."')";
mysql_db_query("glp",$insercion,$db) or die("Error:".mysql_error());
}
El bucle que inserta calles se detiene en cuanto encuentra una repetida, por lo que la tabla "calles" se queda a medio actualizar. Yo sospecho que la clave de la solución se encuentra en la consulta inicial:
Esto selecciona todos los clientes en lugar de sólo aquellos en los que la calle no está repetida, así que quizás por eso no puedo insertarlos todos. ¿Serviría hacer algo así?
Código:
"SELECT * FROM clientes, calles
WHERE clientes.calle <> calles.calle"
¿Cómo lo implementaríais vosotros? Creo que lo que quiero hacer en realidad es bien sencillo, sólo que estoy demasiado pegado. Gracias de nuevo, perdonad la molestia y un saludo.