Hola necago una necesito ayuda tengo una consulta pero quiero que todo lo que traiga esa consulta se me guarde en otra tabla o copie todo lo que trae esa consulta cabe mecionar que la consulta trae consigo más de 10datos me pueden ayudar
Es fácil de hacer, te dejo un ejemplo: <?php $query = mysql_query("select * from tabla"); while($row = mysql_fetch_row($query)) { $idx = 0; $sql = "INSERT INTO nuevatabla VALUES ("; foreach ($row as $variable => $value) { if($variable == 'ID') $sql .= "''"; else if($idx == 0) $sql .= "'" . $value . "'"; else $sql .= ", '" . $value . "'"; $idx++; } $sql .= ");\n"; mysql_query($sql); } ?> Solo tendrías que editar donde dice 'ID' por el index de la tabla ( en caso de que exista ) y copiarías todo lo que exista en la tabla 'tabla' a 'nuevatabla'.
Hola tal no entiendo muy bien, tengo mi código en valid.php dentro de esta me traigo una variable usuario en la cual al ser correcta va a copiar la tabla obracivil a obracivil1, es que no se muy bien me podrías explicar con manzanas plis <?php print(" <td><input name=usuario type=hidden id=usuario size=5 onFocus=blur() value=\"".$usuario. "\">"); if ($usuario==globalsave ){ $query = mysql_query("select * from obracivil"); while($row = mysql_fetch_row($query)) { $idx = 0; $sql = "INSERT INTO obracivill VALUES ("; foreach ($row as $variable => $value) { if($variable == 'numero') $sql .= "''"; else if($idx == 0) $sql .= "'" . $value . "'"; else $sql .= ", '" . $value . "'"; $idx++; } $sql .= ");\n"; mysql_query($sql); } //Solo tendrías que editar donde dice 'ID' por el index de la tabla ( en caso de que exista ) y copiarías todo lo que exista en la tabla 'tabla' a 'nuevatabla'. } ?>
Claro, en ese caso, debes especificar en la consulta el nombre de usuario select * from obracivil WHERE NombreUsuario = '" . $usuario . "' LIMIT 1 ( Cambia NombreUsuario por el nombre del campo de usuario de la tabla ) De esta forma, sólo pasaran los datos del usuario que se haya especificado, siempre y cuando exista en la base de datos. También puedes poner un if para comprobar si el usuario no existe y mostrar un mensaje. El código final quedaría así: <?php $query = mysql_query("select * from obracivil WHERE NombreUsuario = '" . $usuario . "' LIMIT 1"); if(mysql_num_rows($query)) { $row = mysql_fetch_row($query); $idx = 0; $sql = "INSERT INTO obracivil1 VALUES ("; foreach ($row as $variable => $value) { if($variable == 'numero') $sql .= "''"; else if($idx == 0) $sql .= "'" . $value . "'"; else $sql .= ", '" . $value . "'"; $idx++; } $sql .= ");\n"; mysql_query($sql); }else{ printf("<b>%s</b> no existe en la base de datos", $usuario); } ?> Por otra parte, tienes que tener en cuenta que ésto: if($variable == 'numero') $sql .= "''"; else Lo que hace es asignar una nueva ID al nuevo registro, si quieres que tenga la misma ID que en la tabla original, elimina esas 3 líneas. if ($usuario==globalsave ){ No entiendo muy bien que es lo que está verificando en éste if, doy por hecho que $usuario es el nombre de usuario, ¿no? Nota: De esta forma, sólo se copia una consulta, no la tabla entera.