elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [PHP y MySQL] Problema con código
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [PHP y MySQL] Problema con código  (Leído 3,370 veces)
electrodev

Desconectado Desconectado

Mensajes: 58


No,¡Las Maquinas no son Perfectas!


Ver Perfil
[PHP y MySQL] Problema con código
« en: 15 Agosto 2014, 17:38 pm »

Buenos días, os escribo por que no dejo de tirarme de los pelos con este problema, supongo que será algún fallo tonto o simplemente que no lo hago de forma correcta.

Código
  1. echo "Copiando...";
  2.  
  3. $gid = '10';
  4.  
  5. $sql = 'SELECT * FROM my_table_1 WHERE id = "'.$gid.'"';
  6.  
  7. $db = mysql_pconnect('mi_ip','mi_user','mi_pass');
  8. mysql_select_db('mi_DB');
  9. $data = mysql_query($sql);
  10.  
  11. $res = mysql_fetch_array($data);
  12.  
  13. $sql = 'INSERT INTO my_table_2 (id,data1,data2) VALUES ("'.$res['id'].'","'.$res['data1'].'","'.$res['data2'].'")';
  14.  
  15.  

La estructura de las dos tablas son totalmente iguales y como verán lo único que hace es copiar la fila que retorna la 1º consulta SQL en la 2º Tabla. La primera linea donde esta el echo funciona y php no me tira ningún error, pero al explorar con phpmyadmin la 2º tabla no se introducen los datos.

Desconozco totalmente que esta mal o que estoy haciendo mal, ¿Alguien sabe a que se debe?, ¿Alguna otra manera de hacerlo?  :huh:

Un Saludo y Gracias de antemano



« Última modificación: 16 Agosto 2014, 22:48 pm por electrodev » En línea

::: Devil :::


Desconectado Desconectado

Mensajes: 449


¡Lucha por lo que quieres y lo Obtendras!


Ver Perfil
Re: [PHP y MySQL] Problema con código
« Respuesta #1 en: 15 Agosto 2014, 18:04 pm »

update


En línea

NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA
electrodev

Desconectado Desconectado

Mensajes: 58


No,¡Las Maquinas no son Perfectas!


Ver Perfil
Re: [PHP y MySQL] Problema con código
« Respuesta #2 en: 15 Agosto 2014, 18:16 pm »

??
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [PHP y MySQL] Problema con código
« Respuesta #3 en: 15 Agosto 2014, 20:46 pm »

¿Como es tu tabla de SQL?

Código
  1. DESCRIBE my_table_1;

El comando lo corres desde tu base de datos en el phpmyadmin en la pestaña SQL o desde una conexion SQL habiendo selecionado la base de datos.

También puedes debuggear SQL con mysql_error().

Ej.

Código
  1. mysql_query("SELECT * FROM tabla") or die(mysql_error());
En línea

electrodev

Desconectado Desconectado

Mensajes: 58


No,¡Las Maquinas no son Perfectas!


Ver Perfil
Re: [PHP y MySQL] Problema con código
« Respuesta #4 en: 16 Agosto 2014, 16:27 pm »

Gracias MinusFour, en cuanto tenga un momento lo pruebo a ver si saco mas datos de que falla.

Un Saludo y Gracias
En línea

spysecurityca

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [PHP y MySQL] Problema con código
« Respuesta #5 en: 16 Agosto 2014, 21:32 pm »

Mi viejo es como dijeron arriba, intenta con un update, ya que son iguales le pasas el elemento en común a la otra tabla para que te haga un cambio.

Haces que el update sql se hasta efectivo al encontrar el elemento el común con la otra tabla por medio de un if.

No te hago el código porque estoy desde el móvil y es un poco fastidioso.
En línea

electrodev

Desconectado Desconectado

Mensajes: 58


No,¡Las Maquinas no son Perfectas!


Ver Perfil
Re: [PHP y MySQL] Problema con código
« Respuesta #6 en: 16 Agosto 2014, 22:48 pm »

Ok muchiiiisimas gracias a todos, ya lo arregle.  ;-)

Si quereis ya podeis cerrar el hilo.
En línea

dRak0

Desconectado Desconectado

Mensajes: 234


Ver Perfil WWW
Re: [PHP y MySQL] Problema con código
« Respuesta #7 en: 16 Agosto 2014, 23:17 pm »

Código:
echo "Copiando...";

Cuando no vayas a mostrar una variable usa comillas simples ''. Si usas comillas dobles PHP tambien analiza si existe una variable, afectando al rendimiento.
En línea

electrodev

Desconectado Desconectado

Mensajes: 58


No,¡Las Maquinas no son Perfectas!


Ver Perfil
Re: [PHP y MySQL] Problema con código
« Respuesta #8 en: 21 Agosto 2014, 23:58 pm »

»®et2lib©«  Gracias por ese apunte, me lo guardo.
Muchas Gracias  ;D
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [PHP y MySQL] Problema con código
« Respuesta #9 en: 22 Agosto 2014, 18:12 pm »

Prueba con:

Código
  1. <?php
  2. ...
  3. INSERT INTO tabla1
  4. SELECT
  5. NULL, -- Los ids no deberian compartirse a menos que sea muy necesario
  6. campo1,
  7. campo2
  8. FROM tabla1
  9. ');

Desde la misma query puedes insertar haciendo un select por debajo, esto vuelca directamente los datos de una tabla a otra seleccinando los campos que necesitas, de hecho desde el select puedes hacer un order by o un limit como gustes o joins, generalmente lo uso cuando debo llenar tablas para los cache. Si haces esto desde php no sabrás si tienes 1 dato o un millón y pasar un millón de registros a la memoria vía php podría ser fatal, en ves de eso deja que mysql se encargue de traspasar fila por fila sin dejar sin aliento a tu servidor.

Si quieres pasar un solo dato puedes usar un where y si quieres unir datos relacionados puedes usar group_concat:

Código
  1. INSERT IGNORE INTO usuarios_b
  2. SELECT
  3. id,
  4. nombre,
  5. correo,
  6. GROUP_CONCAT(telefonos SEPARATOR ", ") as telefonos
  7. LEFT JOIN telefonos ON (telefonos.usuario_id = usuarios_a.id)
  8. FROM usuarios_a
  9. WHERE usuarios_a.id = 157894
  10. GROUP BY usuarios_a.id
  11. ');

Digamos que usuarios_a tiene una tabla relacional con todos los telefonos del usuario, en la tabla usuarios_b tendrá los telefonos separados por coma en un solo campo desnormalizado vs usuarios_a que si estaba normalizado. El ignore es para que no arroje error si ya existía, si se quiere renovar se puede unir con un drop o un update en ves de insert. Puse left join en ves de inner join porque talves el usuario no tiene telefonos, en ese caso el campo queda nulo y la tabla usuarios_b debería tener el campo telefonos nullable y usuarios_b denbería llevar un foregin key relaiconado con el id de la tabla de usuarios_a con un on-update y on-delete en cascade para hacer joins mas rápidos con innodb.

Por favor intenten dejar de usar mysql_ y usen mysqli_ o el objeto mismo de mysqli ya que mysql_ se declaró obsoleto en las nuevas verisones de php5.
« Última modificación: 22 Agosto 2014, 18:26 pm por WHK » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
codigo de conexion vwd y mysql?
.NET (C#, VB.NET, ASP)
coolfrog 7 8,260 Último mensaje 2 Junio 2006, 08:34 am
por BADBYTE-K
Problema al leer DB mysql en php, algo del codigo esta mal. « 1 2 3 »
PHP
XXXXXX 27 10,037 Último mensaje 27 Mayo 2010, 19:22 pm
por XXXXXX
[ANSI C]Codigo fuente del generador de mysql inyection.
Programación C/C++
volteo0101 0 3,852 Último mensaje 28 Febrero 2011, 15:12 pm
por volteo0101
Ayuda con código PHP+MySQL sencillo
PHP
mokoMonster 2 2,777 Último mensaje 19 Marzo 2012, 21:27 pm
por mokoMonster
Duda php, mysql, código aleatorio
Desarrollo Web
HORECA 3 2,647 Último mensaje 3 Diciembre 2013, 17:21 pm
por EFEX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines