Como usar el resultado de una query en un insert con MySQL

zoemv Seguir

Beta
Social Media
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
21 Jul 2010
Mensajes
84
hola betas tengo un problemita con unos query's, el problema es que quiero cambiar unos valores de una tabla de mysql, bueno principalmente el problema es que no se si se pueda meter dos querys en una consulta pues necesito hacer la consulta y luego insertar el valor modificado aqui ta mi codigo:

<?php

$result = mysql_query("select id, nombre, title from nombres");

while($row = mysql_fetch_array($result)) {
echo "<tr><td>".$row["id"]."</td>";
echo "<td>".$row["nombre"]."</td>";
$camba=cambio($row["nombre"]);
echo "<td>".$camba."</td><tr>";

$insert=mysql_query("insert into categorias (nombre,slug) values ('$row["artist"]','$camba')");

}
function cambio($valor){
$valor=strtolower($valor);
return $valor;
}
?>
 

gustavodbs

Gamma
Verificación en dos pasos desactivada
Desde
23 Mar 2010
Mensajes
179
Cómo funciona?
PHP:
function cambio($valor)

Puedes probar con un UPDATE, Ej:

PHP:
$sql = "UPDATE nombre SET nombre=\'$nombre\', algo=\'$algo\' WHERE id=\'$id\'\";

Enlace eliminado
 

albionet

Beta
Verificación en dos pasos desactivada
Desde
4 Ago 2011
Mensajes
39
Hola

Para cambiar los valores en una tabla de mysql o cualquier ambiente como sql server, orcle, mysql, informix, etc. se utiliza la funcion update ya que el insert como su nombre lo dice es para crear un nuevo registro y si insertas un nuevo registro con la finalidad del update, rompes la integridad de tu base de datos ya que la informacion sera ambigua y no podras determinar cual es la buena y cual es la que es basura y mas si este valor se actualizar miles de veces en un dia imaginate tu base de datos tronaria como chinampina ya que creseria sin control.

A lo que entendi de tu codigo solo intentas actualizar tus registros para que los nombres de las categorias esten en mayusculas, y mas o menos podria quedar asi:

<?php

$result = mysql_query("select id, nombre, title from nombres");

while($row = mysql_fetch_array($result)) {
echo "<tr><td>".$row["id"]."</td>";
echo "<td>".$row["nombre"]."</td>";
$camba=cambio($row["nombre"]);
echo "<td>".$camba."</td><tr>";

$query = sprintf("SELECT id, nombre FROM categorias WHERE id=" .$row["id"] , mysql_real_escape_string(strtolower($row["nombre"])));

// Ejecutar Consulta
$result = mysql_query($query);
}
?>
 

Chapi

Delta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
2 Ago 2011
Mensajes
619
Igualmente la funcion cambio no tiene ningun sentido si lo unico que hace es retornar lo que retorna la function strtolower, es preferible usar esta funcion directamente en vez de wrappearle an otra funcion innecesaria.
 

zoemv

Beta
Social Media
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
21 Jul 2010
Mensajes
84
bueno gracias por sus respuestas a todos mmm... bueno mi duda era si se podían agregar dos querys y si se puede jejeje...
$insert=mysql_query("insert into categorias (nombre,slug) values ('$row["artist"]','$camba')");
en esta linea tenia tenia un orrorsote ('$row["artist"]' las comillas de artist) ya lo arregle...grax por el interes
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba