El ".sql" es un archivo de texto plano simple que contiene los comandos SQL de "CREATE table" (si corresponde) y sobre todo los INSERT de cada uno de tus registros que has de hacer tu volcado a tu .sql ... Las instrucciones SQL se separan por ; ademas de un \n (salto de línea) cara al archivo en sí ..
Se trata simplemente de hacer tu consulta SQL habitual por ese "ID=x" o lo que requieras .. pero .. en lugar de hacer el típico: echo $row['id'] y demás campos de ese registro .. tienes que componer tu sentencia SQL de INSERT con su sintax adecuada y dejarlo en una variable para luego darle el destino definitivo .. sea a un archivo de texto plano .. o a entregarlo a descargar directamente .. etc.:
Código PHP:
// conecta a tu BD ..etc ...
$sql = '';
$consulta_sql="SELECT .....";
$resultado=mysql_query($consulta_sql);
While ($row=mysql_fetch_array($resultado)){
$sql .= "INSERT INTO tabla id VALUES('".$row['id']."');\n";
}
// Ahora con tu $sql .. si quieres lo vuelvas a un archivo con funciones fopen() en modo escritura . y fwrite() ... El nombre del archivo le indicas nose.sql ..
Si te apetece ..estudia el código de phpMyadmin por qué hace exactamente esto mismo y ademas incorpora la generación del .zip con una classe (objeto) o función que usa ...
Un saludo,