Foros del Web » Programando para Internet » PHP »

Trabajo con 3 arreglos

Estas en el tema de Trabajo con 3 arreglos en el foro de PHP en Foros del Web. Saludos a todos. ¿Alguien puede ayudarme con esto? Tengo dos tablas, una que se llama 'Clientesnuevos' y la otra que se llama Clientesviejos' Tengo un ...
  #1 (permalink)  
Antiguo 15/09/2011, 07:50
 
Fecha de Ingreso: abril-2011
Mensajes: 41
Antigüedad: 13 años
Puntos: 0
Trabajo con 3 arreglos

Saludos a todos.

¿Alguien puede ayudarme con esto?

Tengo dos tablas, una que se llama 'Clientesnuevos' y la otra que se llama Clientesviejos'
Tengo un campo con nombre 'NoCliente' en 'Clientesnuevos' donde voy registrando el 'id' de los clientes en 'Clientesviejos' si es que existe como clienteviejo.

En una página muestro una tabla con todos los clientesnuevos donde muestro el campo 'Clientesviejos' y necesito mostrar este campo 'Clientesviejos' actualizado.


Código PHP:
Ver original
  1. $sql = "SELECT recordid, NoCliente FROM Clientesnuevos WHERE deleted='n' AND NoCliente<>''";
  2. $result = mysql_query($sql);
  3.  
  4. while ($row = mysql_fetch_array($bus)) {
  5.                     $valores[] = $row['NoCliente'];
  6.                     $recordid[] = $row['recordid'];
  7. }

Array No. 1 del campo 'recordid' en la tabla 'Clientesnuevos'

Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 7
[4] => 8
[5] => 9
[6] => 10
[7] => 12
[8] => 15
[9] => 16
)

Array No. 2 del campo 'NoCliente' en la tabla Clientesnuevos.

Array
(
[0] => 6
[1] => 7
[2] => 5
[3] => 600
[4] => 601
[5] => 602
[6] => 603
[7] => 604
[8] => 3
[9] => 621
)


Código PHP:
Ver original
  1. for($x=0 ; $x<count($valores) ; $x++) {
  2.         $query1 = "SELECT id FROM Clientesviejos WHERE id='" . $valores[$x] . "'";
  3.         $result = mysql_query($query1);
  4.  
  5.         while ($row1 = mysql_fetch_array($result)) {
  6.                 $dema[] = $row1['id'];
  7.         }
  8. }


Array No. 3 del campo 'id' en la tabla Clientesviejos.

Array
(
[0] => 7
[1] => 5
[2] => 600
[3] => 601
[4] => 602
[5] => 603
[6] => 604
[7] => 3
[8] => 621
)

Cómo pueden ver en este último array falta un registro que no existe en la tabla 'Clientesviejos' pero si existe en el campo 'NoCliente' la tabla 'Clientesnuevos'.

¿Qué necesito?

Actualizar el campo 'NoCliente' en Clientesnuevos con lo que devuelve la consulta a
la tabla 'Clientesviejos'. Pienso que la solución a esto está en el trabajo con los arreglos, algo así cómo asociarlos, unirlos, etc. pero en estos momentos no imagino cómo hacerlo.

Muchas gracias.
  #2 (permalink)  
Antiguo 15/09/2011, 10:26
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Trabajo con 3 arreglos

bueno lo q podes hacer un unir los dos arrays para luego agregar los que faltan
$recordid+=$valores;//esto hace una union de arrays
saludos
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 15/09/2011, 12:34
 
Fecha de Ingreso: abril-2011
Mensajes: 41
Antigüedad: 13 años
Puntos: 0
Respuesta: Trabajo con 3 arreglos

Replanteo lo que "Necesito".

Realmente lo que necesito es buscar cuál valor del array No. 2 no está en el array No. 3 para entonces actualizar este campo a vacío o NULL en la tabla 'Clientesnuevos' y según el 'recordid'.
  #4 (permalink)  
Antiguo 15/09/2011, 20:36
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Trabajo con 3 arreglos

Tal vez te sirva la función array_diff o alguna de sus variantes.

Código PHP:
Ver original
  1. <?php
  2. $arr_num2 = array(6, 7, 5, 600, 601, 602, 603, 604, 3, 621);
  3. $arr_num3 = array(7, 5, 600, 601, 602, 603, 604, 3, 621);
  4. echo '<pre>';
  5. print_r(array_diff($arr_num2, $arr_num3));
  6. //Resultado: [0] => 6 (el número 6)
  7. echo '</pre>';
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: arreglos, mysql, registro, sql, tabla, trabajo
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 05:15.